提取 git 存储库的特定修订版本

提取 git 存储库的特定修订版本

我对 git 的水平是beginner:我基本上能够提交、拉取、推送和切换/创建分支。

我当前的提交是222222222,而同一分支中的前一个提交是111111111

我想检索提交时的分支111111111,复制其中包含的文件并返回,222222222以便我可以基于该提交继续工作。恢复似乎是我所需要的。

使用 revert,我可以得到以下内容(如果我理解正确的话,revert 也会提交):

  1. 犯罪111111111
  2. 犯罪222222222
  3. 恢复到111111111(它还会111111111再次提交)
  4. 恢复到222222222(它还会222222222再次提交)

但我不希望恢复出现在我的历史记录中。

那么,我如何在提交时实际拍摄存储库的快照111111111

答案1

在 Git 中,承诺是存储库快照。您只需要在它们之间切换即可。


不,git revert不是你需要的,因为它是专门制作的使还原出现在历史记录中。所描述的操作是git checkout相反的操作。

保留22222但复制旧提交中的部分或全部文件:

git checkout 11111 file1.c file2.txt dir1
[or]
git checkout 11111 .

(一如既往,.意思是“当前目录”)

要将整个存储库暂时切换到旧提交,然后返回:

git checkout 11111
[copy files]
git checkout master

相关内容