【问题标题】:How to go about collaboration with git on a single repo locally stored如何在本地存储的单个 repo 上与 git 进行协作
【发布时间】:2019-02-05 05:28:01
【问题描述】:

[编辑:根据初始反馈修改问题]

我的电脑上有一个本地 git 存储库,我一直在提交自己的更改,我一直在开发一个 ma​​ster 分支。

现在,我需要让另一个开发人员加入,我将使用“捆绑”方法以“离线”方式进行协作(请参阅: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

并将其交给开发人员。反过来,他创建了 repo 并创建了自己的分支 master-other:

git clone repo.bundle newrepo
git branch master-other
git checkout master-other

他做了一些修改并提交了。 现在,假设我想将他的模组导入回给我。以下命令可以正常工作:

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 分支?

还是别的什么?

我们的目标是让一个 工作 的 repo 在我身边,同时也将我的更改回馈给其他开发人员。

非常感谢!

【问题讨论】:

标签: git


【解决方案1】:

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

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

如果您想直接在当前分支的顶部导入这些提交,请执行以下操作:

git pull --rebase new_commits.bundle master

我们的目标是保持我身边的工作回购

  • 这将使您拥有一个有效的存储库

,并将我的更改也回馈给其他开发人员。

只需创建一个new incremental bundle 并重复该过程。

【讨论】:

  • 感谢 VonC。如果你愿意,你能否提供一些关于“我想做什么?”的见解。 IE。最好的方法是什么?谢谢。
  • @JoeSlav 我刚刚做了: pull --rebase 会将所有内容保持在同一个分支上。然后,您可以创建一个新的增量捆绑包 (stackoverflow.com/a/12216898/6309) 并重复该过程。
  • 您是否有任何考虑可以说明为什么带有 --rebase 的 git pull 比没有 --rabase 的 git pull 更适合源代码控制管理?谢谢
  • @JoeSlav 如果您只想保留一个分支并避免合并提交,这是正确的选择。如果您想将您同事的工作整合为一个提交,那么定期拉取就足够了(如您的问题所示)。见atlassian.com/git/articles/git-team-workflows-merge-or-rebaseatlassian.com/git/tutorials/merging-vs-rebasing
  • 谢谢。最后一次跟进。我创建另一个分支并保留其他开发人员的东西怎么样?即我的回购和他的回购会相等吗?而且,如果我变基,同事从我这里导入新包时会不会有问题,他需要拉到主人还是他的主人-其他?
【解决方案2】:

您是否有理由不为此使用私人发布的存储库?只是好奇。似乎因为您一直在单独工作并且想要引入另一个合作者,所以使用已发布的 repo 将有很多用途。我并不完全提倡 Github,因为还有其他服务,例如 BitBucket 和 GitLab。

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

你们俩都可以在很大程度上独立工作,但根据需要与 PR 一起工作。

【讨论】:

    猜你喜欢
    • 2013-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-15
    • 2020-06-14
    • 2012-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多