如何在本地存储的单个repo上与git进行协作

问题描述 投票:2回答:2

[编辑:基于初步反馈修改的问题]

我在我的电脑上有一个本地的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的分支并在那里导入他的提交然后合并回我的主分支?

或者是其他东西?

目标是让一个工作回购站在我身边,并向其他开发者回馈我的更改。

非常感谢!

git
2个回答
0
投票

或者我是否要创建另一个名为master-other的分支并在那里导入他的提交然后合并回我的主分支?

实际上,你刚刚创建的git pull已经创建了一个分支(尽管未命名),并将其合并为master,如图所示。

如果要直接在当前分支上导入这些提交,请执行以下操作:

git pull --rebase new_commits.bundle master

目标是让我的工作回购

  • 这将保持一个工作回购在你身边

,以及向其他开发者回馈我的更改。

只需制作一个new incremental bundle并重复该过程。


0
投票

您是否有理由不使用私人发布的存储库?只是好奇。似乎既然你一直在独自工作,并且你想引进另一个合作者,使用已发布的回购将有很多用途。我不支持Github,因为还有像BitBucket和GitLab这样的其他服务。

你们每个人都可以拥有项目的分支,并提交拉动变更请求。此外,您可以通过4份代码(单个副本和2个分叉)而不是2个来增强冗余。

你们两个都可以在很大程度上孤立地工作,但是根据需要与PR一起工作。

© www.soinside.com 2019 - 2024. All rights reserved.