繁体   English   中英

Git:从旧提交还原所有更改的文件

[英]Git: Restore all changed files from old commit

我在这里看到了许多还原单个文件的答案,但是在这种情况下,同事设法消除了与特定提交相关的所有更改。

有没有一种方法可以检出在特定提交中已更改的所有文件,并将其向前推送到当前的主文件?

我试过了:

git checkout 3ed2aa8        //go to the commit with the change
git checkout -b getOldFiles //make it a legit branch
git rebase master           //get branch up to date
git checkout master         //go to local master
git merge getOldFiles       //in theory, get the changed files back

我不确定100%,但是我认为它没有取得任何成就。

这将无济于事,因为3ed2aa8是较旧的提交,并且合并优先处理较新的更改。 您可以执行rebase -i [在3ed2aa8之前提交],然后将3ed2aa8重新排序到最前面。 在分支中执行此操作,以确保它满足您的要求。

git checkout -b fix
git rebase -i 3ed2aa8~ [Reorder list in text editor]
git checkout master
git merge fix 

否则,为什么不对销毁提交的同事的修订版使用git revert?

git revert --no-commit [bad_rev1]
git revert --no-commit [bad_rev2]
git revert --no-commit [bad_rev...]
git commit

请参阅还原多个git提交

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM