gpt4 book ai didi

git - 如何在不覆盖当前更改的情况下将文件恢复到以前的版本?

转载 作者:太空狗 更新时间:2023-10-29 13:12:27 26 4
gpt4 key购买 nike

我在尝试将文件还原为之前的提交时遇到问题,我知道我可以使用 git checkout 来还原单个文件,但问题是我对该文件进行了更改我'我想保留所以我想知道如何在单个文件的先前提交和当前 HEAD 之间进行某种“merge ”?我尝试使用 git reset sha-of-my-commit path/to/my/file 但它将以前的版本放在暂存区,同时将最新版本保留在我的工作目录中不知道如何 merge 两个文件都在它之后。

我现在所做的只是 git diff ..sha-of-my-commit path/to/my/file 并复制/粘贴缺失的行,但我相信一定有更好的方法来做到这一点?

最佳答案

假设您的意思是更改在您的工作树中(未提交):

git stash
git checkout previous-commit path/to/file
git stash pop

如果您已经提交了一些更改,那么您仍然可以做,但需要多做一些工作。假设您的历史记录如下所示:

- x - A - x - x - x - B - x - x (HEAD)

您想要 A 处的版本,以及 B 处的更改。然后这样做:

git stash
git checkout B path/to/file
git stash
git checkout A path/to/file
git stash pop
git stash pop

请注意,任何存储应用程序,因为它是一个 merge 操作,都可能导致 merge 冲突;你当然应该在继续之前解决这些问题!

关于git - 如何在不覆盖当前更改的情况下将文件恢复到以前的版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9131258/

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