gpt4 book ai didi

git - 如何回滚上一次提交中的 1 个文件更改

转载 作者:太空狗 更新时间:2023-10-29 13:00:49 30 4
gpt4 key购买 nike

我在 git 中做了 2 次提交(而且我还没有推送),其中“提交 2”是最近的一次:

 git log -2
commit 791962d776f66253d656586b097b2677eaa983d1
Author: michael <michael@michael-laptop.(none)>
Date: Tue Jun 29 23:20:58 2010 -0700

Commit 2

commit b743075e81f6fe25fe48ddbef2b5e7cc06623533
Author: michael <michael@michael-laptop.(none)>
Date: Tue Feb 16 23:09:53 2010 -0800

Commit 1

在我的提交 1 b743075e81f6fe25fe48ddbef2b5e7cc06623533 中,我修改了一些文件:

   dir1/file1.cpp
dir1/file1.h
dir1/file2.cpp
dir1/file2.h

我的问题是,如何回滚对提交 1 的 dir1/file2.cpp、dir1/file2.h 所做的更改?并保持其他一切不变?

谢谢。

最佳答案

最简单的解决方案是,从您最近的提交 (HEAD) 到:

  • checkout旧版本的这两个文件,
  • 添加它们,
  • 然后提交。
    git checkout b743075e81 -- dir1/file2.cpp    git checkout b743075e81 -- dir1/file2.h    git add dir1/file2.cpp # only if you made additional changes    git add dir1/file2.h   # only if you made additional changes    git commit -m "revert dir1/file2.cpp and dir1/file2.h"

作为Chris Johnsen评论中提到:

git checkout with pathspecs updates the index (like git reset with pathspecs) and the working tree, so git add is not needed unless additional changes are made after the checkout.

关于git - 如何回滚上一次提交中的 1 个文件更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3146985/

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