我想用头来“同步”一个远程分支,这样当我最终合并它时,它不会让人头痛。因此,我想尝试将头部更改拉入我的分支,看看它有多么不同。
如何在Git中完成以下工作流程?
任何关于更好的工作流程的提示都会非常有用。
答案 0 :(得分:4)
这都是非常基本的东西:
# make sure your notion of the remote is up to date
git fetch origin
# create and check out a branch, at the same place as the remote master branch
git checkout -b origin-master origin/master
# merge your local master
git merge master
# test, edit away, hack hack hack
git add ...
git commit ...
# push back to origin
git push origin origin-master:master
术语说明:
拉取是抓取和合并的组合。当你在当地的分支机构运营时,没有必要去取,所以你要合并,而不是拉动。
HEAD并不代表您认为的含义。 (也许你是一个cvs / svn人。)HEAD只是当前检出的提交(通常通过分支名称引用)。所以你没有合并HEAD,你正在合并那个分支。我在这里称它为主人。
至于你关于更好的工作流程做同样事情的问题......好吧,这很难回答。你的目标有点含糊不清。你说“慢慢”同步并引用“最终合并它”,但是你概述的步骤一次完成所有这些,所以......好吧,它们都被合并了。以后什么也没做。如果你想以增量方式进行,你可以简单地重复我给出的步骤,在历史记录中选择中间提交以便每次合并。还有一点不清楚你想要合并的方向。也许你真的想从你的分支开始,并将远程资料合并到其中?
git checkout -b master-merging master
git fetch origin
git merge origin/master
# test, hack, commit, push...
git push origin master-merging:master
或者使用增量合并:
git checkout -b master-merging master
git fetch origin
git merge origin/master~20 # 20 commits before origin/master
# test, hack, commit
git merge origin/master~10 # 10 commits before origin/master
# test, hack, commit
git merge origin/master
# test, hack, commit, push...