[编辑:基于初步反馈修改的问题]
我在我的电脑上有一个本地的git repo,我一直在做我自己的改动,我一直在做一个主分支。
现在,我需要让另一个开发者,我将使用“捆绑”方法以“离线”方式进行协作(请参阅:Workflow and setup of a bare git repository for transferring project/changes/commits to offline repository on a seperate machine?)。
所以,我创建了一个这样的包:
cd myrepo
git bundle create repo.bundle HEAD master
并把它交给开发者。反过来,他创建了回购并创建了自己的分支主人 - 其他:
git clone repo.bundle newrepo
git branch master-other
git checkout master-other
他做了一些修改并承诺了。现在,说我想将他的mods导回给我。以下命令工作正常:
git bundle create new_commits.bundle master-other ^ffffff
现在我不确定在第一台创建原始包的机器上我想要什么。
我是否想要导入他的更改:
git pull new_commits.bundle master-other
此命令创建如下情况:
* aaaaaaa (HEAD -> master) Merge branch 'master-other' of new_commits.bundle
|\
| * bbbbbbb commit by other person 2
| * ccccccc commit by other person 1
* | ddddddd a commit I made after doing the bundle
|/
* ffffff my last commit
或者我是否要创建另一个名为master-other的分支并在那里导入他的提交然后合并回我的主分支?
或者是其他东西?
目标是让一个工作回购站在我身边,并向其他开发者回馈我的更改。
非常感谢!
或者我是否要创建另一个名为master-other的分支并在那里导入他的提交然后合并回我的主分支?
实际上,你刚刚创建的git pull
已经创建了一个分支(尽管未命名),并将其合并为master,如图所示。
如果要直接在当前分支上导入这些提交,请执行以下操作:
git pull --rebase new_commits.bundle master
目标是让我的工作回购
,以及向其他开发者回馈我的更改。
只需制作一个new incremental bundle并重复该过程。
您是否有理由不使用私人发布的存储库?只是好奇。似乎既然你一直在独自工作,并且你想引进另一个合作者,使用已发布的回购将有很多用途。我不支持Github,因为还有像BitBucket和GitLab这样的其他服务。
你们每个人都可以拥有项目的分支,并提交拉动变更请求。此外,您可以通过4份代码(单个副本和2个分叉)而不是2个来增强冗余。
你们两个都可以在很大程度上孤立地工作,但是根据需要与PR一起工作。