8

例子:

  • 我克隆了 Github 存储库,创建了一个新分支并开始开发一个功能。

  • 我的同事克隆了完全相同的 Github 存储库,在他的本地机器上创建了自己的分支(git checkout -b mylocalbranch),并使用他自己的功能。

  • 我的同事在我之前完成了他的功能并将其推送到生产环境并返回到 Github。

  • 我在 30 分钟后完成了我的功能,并希望在不引起任何冲突的情况下推进我的工作。

在不引起任何冲突的情况下,将我的工作推向生产并返回到 Github 的最佳方式是什么?

4

4 回答 4

17

假设您的同事将他的代码合并到production分支。

yourfeature现在,您之前创建的分支production有点过时了,并且您在其之上几乎没有提交。

你现在要做的是:

  • 切换到production分支
  • 拉它(所以你有最新的变化,包括你的同事的变化)
  • 去你的yourfeature分行
  • 使用:重新设置您的分支production:这将在最新生产中重放您对该分支的提交。
  • 如果出现任何冲突:它们是由于您的同事在您更新某些内容时所做的同一行更改。

在此处阅读更多关于变基的信息

于 2012-12-19T19:30:12.923 回答
1

好吧,你可以签出你想合并到的分支,

git checkout master

然后合并你的代码

git merge [current_branch]

总是存在冲突的可能性,在这种情况下,您只需处理它们并解决它们。

这篇文章应该有所帮助: http: //git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging

于 2012-12-19T19:30:12.233 回答
0

快速的方法是,确保您的更改已提交,使用 拉取您的队友所做的更改git pull,将分支合并到您的分支中git merge branchname,将您的分支合并到 master by git checkout master git merge yourbranchname,然后git push将更改备份到远程仓库。

其他相关链接:

在 GitHub 中的分支之间合并

将远程 github 存储库中的更改合并到本地存储库

于 2012-12-19T19:29:14.653 回答
0

这篇博文很有帮助:

结论

避免合并工作流程,尤其是当您有很多提交者或训练有素的提交者时。

了解 git 的分布式特性如何改变游戏规则。

在您的权威存储库上打开系统 receive.denyNonFastForwards

来自:http ://randyfay.com/content/avoiding-git-disasters-gory-story 。评论和帖子都是黄金。

于 2012-12-19T19:33:13.737 回答