【问题标题】:What's the proper way to merge my work to a remote将我的工作合并到遥控器的正确方法是什么
【发布时间】:2013-11-12 16:40:08
【问题描述】:

我有一个本地分支,我已将其推送到远程分支。现在我想将此分支合并到远程主服务器,但我担心当我合并它时,我可能会覆盖我的团队所做的更改。那么,当您在团队中时,正确的合并方式是什么?我读过 rebase,但我不知道该怎么做。

【问题讨论】:

  • 为什么您认为它可能会覆盖您团队所做的更改?
  • 我对在 GIT 中与其他人一起工作还是很陌生,所以这只是我的假设。我担心的是在我正在开发一个功能的情况下,假设我对应用程序的某些部分进行了一些修改,然后我的队友也在同一部分进行了更改。那么如果他在远程推送他的更改而我在之后推送会发生什么?我不会覆盖他对应用程序特定部分的更改吗?
  • 不,git 会让你先拉下他的更改,尝试自动合并,如果失败,它会让你手动合并更改,然后它才会让你推送。跨度>
  • 哦...酷。不知道那件事。谢谢。

标签: git merge rebase


【解决方案1】:

没有真正的“正确方法”。有最佳实践,您应该与您的团队讨论。

话虽如此,我最喜欢的方法是删除(临时)远程分支并将提交重新设置在 master 分支(通常命名为“master”)之上:

   git pull # refresh local repo
   git checkout my_branch # go back to my pushed version of my branch
   # make sure that this "my_branch" is the right one!
   git rebase -i origin/their_branch # probably origin/master
   # > fixe conflicts. Test. Reread. Retest. Compare with original my_branch
   # make sure this is really what I want because when I
   git checkout their_branch ; git rebase my_branch ; git push
   # there is no going back.

这会更新“their_branch”,就好像您一开始就直接在“那里”进行了更改。剩下要做的就是删除远程分支:

   git push origin :my_branch

删除 repo 引用您的旧 my_branch 最终将被垃圾收集。这种方法的主要缺点是 SHA1 在新的(重新定位的)提交子树中发生了变化。但我更喜欢合并树。因此,您应该与您的同事进行最佳实践讨论。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 2012-03-03
    • 2014-10-10
    • 2021-07-21
    • 2012-09-06
    • 1970-01-01
    相关资源
    最近更新 更多