我是否需要克隆存储库以添加自定义分支

Do I need to Clone repository for adding a custom branch

我从 gogs 存储库下载了 Master 分支的 Zip 文件夹,并在该文件夹中初始化 git 后,我添加了自己的分支并进行了自己的更改。

现在我的问题是,我是否必须克隆项目才能将新分支添加到 gogs 上的存储库,或者我可以使用这种方式(下载 zip 文件夹)简单地添加我的分支?

下载远程 Git 存储库(无论是 gogs 存储库还是任何其他远程托管服务)的 zip 存档,意味着下载默认 HEAD 的快照视图。

没有历史。
您通过在其中初始化本地存储库并创建分支而创建的历史记录与原始远程存储库中的历史记录没有共同基础。

如果你想推回你的本地分支,你首先需要:

  • 克隆存储库
  • 将您的本地存储库作为远程存储库添加到官方克隆存储库,然后获取
  • 创建一个新分支
  • cherry-pick 从获取的分支到新分支(你可以cherry-pick in one command a range of commits
  • 推回新分支(这会起作用,因为你是从一个实际的克隆中推)

即:

cd /path/to/local/repo
cd ..
git clone https://gogs/me/myRepo myClone
cd myClone
git are remote repo ../repo
git fetch repo
git switch -c newBranch
git cherry-pick repo/localBranch~n..repo/localBranch
git push -u origin newBranch

在“repo/localBranch~n”中,将“n”替换为您在本地分支中创建的提交数。