gpt4 book ai didi

Git 仅在特定文件上撤消自动 merge ,而不是整个分支

转载 作者:IT王子 更新时间:2023-10-29 01:24:43 26 4
gpt4 key购买 nike

有没有一种方法可以撤消已更改的一个文件的自动 merge ,而不是 Git 中的整个分支?

我想撤消这个 merge :

Auto-merging public/stylesheets/application.css

到以前的版本,其余的保持当前状态。

我试过:

git reset HEAD~1 public/stylesheet/application.css

但似乎不起作用。

最佳答案

当你这样做时:

git reset HEAD~1 public/stylesheet/application.css

... 将索引中文件的版本(即暂存版本)更改为 HEAD~1 中的版本 - 您的工作副本保持不变。 The current documentation解释为:

This form resets the index entries for all <paths> to their state at <commit%gt;. (It does not affect the working tree, nor the current branch.)

如果你这样做:

git checkout HEAD~1 -- public/stylesheet/application.css

... 这会将工作副本和暂存版本都更改为 HEAD~1 中的版本。 -- 是为了安全,以防万一您的文件名也可以理解为提交。

现在您已经完成了更改,您可以修改 merge 提交:

git commit --amend

...只要您没有将 merge 推送到任何地方,这就足够公平了,因为 merge 仍然只会有来自一个分支或另一个分支的更改。

关于Git 仅在特定文件上撤消自动 merge ,而不是整个分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5350278/

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