Git拉到索引
答
git fetch
将获取从遥控器上的变化,但不会与你master
分支合并。它将在远程跟踪分支中。然后您可以手动合并它。 A git pull
一起执行这两个操作。
答
那么问题就出现在你接下来的远程更改上,从远程的历史中的哪个点生成补丁?这正是合并所要解决的问题,合并提交表明到目前为止,哪个远程版本已经应用到您的本地分支。
话虽如此,如果你git fetch
和git merge --no-commit
,合并将在您的工作空间(和指数)做,但没有提交,和元数据将在状态,这样,当你做承诺,这将是标记为合并提交。那是你需要的吗?
答
我不太确定您的预期工作流程是什么,但您可以在不影响当前分支或索引的情况下获取远程更改。
git fetch
然后,您可以合并所取得的变化到当前指数不设置合并提交,但这是想做一个相当模糊和不寻常的事情。
git read-tree -m HEAD origin/remote-branch
两个树的版本是最好的,如果远程分支是您当前HEAD的快进,如果不是那么三路合并选项可能会更好。
git read-tree -m $(git merge-base HEAD origin/remote-branch) HEAD origin/remote-branch
有关差异的详细信息,请阅读git read-tree
的手册页。
我怀疑这是OP实际上想要的(合并到索引*和*工作树,但不提交)。请注意,您可以执行`pull --no-commit`;它传递给`merge`。 – Cascabel 2011-01-10 00:40:38