这是我遇到的一个常见问题。有人给我发了一组文件。我做了一些改变,然后提交。然后我记得我在进行更改之前忘记提交文件的状态。我还有原始文件的副本。如何追溯检查未更改的版本,然后将下一次提交更改为我的更改版本?
(我尝试用旧版本覆盖我更改的版本,提交,然后用rebase -i
重新排序提交,但是当我尝试时我总是遇到冲突,因为我的原始提交添加所有文件,并且rebase似乎不想重新排序添加在修改之后
答案 0 :(得分:1)
通常谨慎对待git reset --hard
,它会抛弃未提交的更改以及原始提交和目标提交之间的更改:
git branch tmp
git reset --hard HEAD^
cp ../originals/* .
git add . # or whichever specific files
git commit -m "Add original files"
git checkout tmp -- .
git commit -c tmp
git branch -D tmp
当然,如果您对此感到满意,可以使用reflog而不是临时分支。