繁体   English   中英

为什么我需要一个本地 master 分支?

[英]Why do I need a local master branch?

我们的团队使用 git 已经有一段时间了,但是这件事还是让我措手不及。 我经常与之前合并的文件发生冲突,并且与其他团队成员修改的文件之间存在空白差异。 通常,它发生在我较早合并的分支中,解决这些问题以获得干净的合并是相当费力的...

因此,我试图尽可能地简化开发过程,让它像 SVN 一样具有抗干扰能力。 我可以每周合并一个来自 origin/master 的本地分支吗? 我需要做什么才能让它不陈旧,egit pull 就够了吗? 或者我必须跳舞通过

git checkout master
git pull
git checkout my_branch
git merge master

每次? 第一个命令显然创建了本地 master,它回答了我在标题中的问题,但为什么 egit pull 还不够?

Git 不知道在原始位置已经向 master 提交了,除非您以某种方式更新本地存储库——通常是使用fetchpull 这意味着,如果您只是合并 master 的本地副本,您可能正在合并一个过时的 head state,这可能会在您尝试推送时导致问题。

您不需要本地主分支。 您可以通过合并远程分支来避免这种麻烦:

git merge origin/master

我喜欢这个工作流程,它结合了reset --hardrebase

  1. 具有远程源/主站的硬覆盖本地主站
git checkout master
git fetch --all
git reset --hard origin/master
  1. 将当前的开发分支重新设置为 master。 注意:使用 rebase 来避免“合并提交”。
git checkout feature
git rebase master
  1. 是的,我一直这样做。 从技术上讲,可以直接变基到 origin/master,但我喜欢尽可能保持同步。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM