假设我有一个功能分支,我在将更改推回之前将上游更改合并到其中:
git branch feature1
... [edit my code]
... [commit]
git fetch origin master
git merge fetch_head [or rebase]
... [resolve conflicts]
... [build and test code]
此时我希望推动我的改变。这样做的正常方法是:
git checkout master [changes a bunch of working tree files]
git merge feature1 [changes the same files right back]
这工作正常,但会让(日期检查)编译器认为一大堆文件是脏的,需要重建,即使内容是相同的。在这种情况下,有没有一种方法可以使工作树保持不变进行签出和合并?
就像是:
git checkout master --merge-branch feature1
EDIT:
我只是在谈论快进合并,根据定义,快进合并不会改变文件的状态。
一种简单而安全的方法(无需推送或强制更新)是将 feature1 获取到 master 中:
(feature1)$ git fetch . feature1:master
From .
4a6000d..8675309 feature1 -> master
诀窍是使用.
得到local功能 1 参考号这比强制更新主分支更安全,因为它确保更新是快进的。 (请参阅中的 参数git-fetch 文档 http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html了解详情。)
现在 feature1 和 master 是相同的,它们之间的切换不会触及任何文件:
(feature1)$ git checkout master
Switched to branch 'master'
(master)$
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)