gpt4 book ai didi

Git checkout 并 merge 而不触及工作树

转载 作者:IT王子 更新时间:2023-10-29 01:11:53 25 4
gpt4 key购买 nike

假设我有一个功能分支,在将我的更改推回之前,我将上游更改 merge 到其中:

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

编辑:

我只是在谈论根据定义不会更改文件状态的快进 merge 。

最佳答案

执行此操作的一种简单而安全的方法(无需推送或强制更新)是将 feature1 提取到 master 中:

(feature1)$ git fetch . feature1:master
From .
4a6000d..8675309 feature1 -> master

诀窍是使用 . 获取本地 feature1 ref。这比强行更新 master 分支更安全,因为它确保更新是快进的。 (有关详细信息,请参阅 git-fetch documentation 中的 参数。)

现在 feature1 和 master 是一样的,在它们之间切换不会触及任何文件:

(feature1)$ git checkout master
Switched to branch 'master'
(master)$

关于Git checkout 并 merge 而不触及工作树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1402993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com