我对 git 的水平是beginner
:我基本上能够提交、拉取、推送和切换/创建分支。
我当前的提交是222222222
,而同一分支中的前一个提交是111111111
。
我想检索提交时的分支111111111
,复制其中包含的文件并返回,222222222
以便我可以基于该提交继续工作。恢复似乎是我所需要的。
使用 revert,我可以得到以下内容(如果我理解正确的话,revert 也会提交):
- 犯罪
111111111
- 犯罪
222222222
- 恢复到
111111111
(它还会111111111
再次提交) - 恢复到
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