如何在git中回滚到特定的提交?
有人能给我的最好答案是使用git恢复X次,直到我达到所需的提交。
假设我想要恢复到20次提交前的提交,我需要运行20次。
有更简单的方法吗?
我不能使用重置,因为这个存储库是公共的。
如何在git中回滚到特定的提交?
有人能给我的最好答案是使用git恢复X次,直到我达到所需的提交。
假设我想要恢复到20次提交前的提交,我需要运行20次。
有更简单的方法吗?
我不能使用重置,因为这个存储库是公共的。
当前回答
你可以在GitHub/BitBucket/Gitlab的提交部分找到与每个提交相关的提交id。 这很简单,假设你的提交id是5889575,那么如果你想回到代码中的这一部分,那么你只需要输入
git checkout 5889575 .
这将带您到代码中的那个时间点。
其他回答
git read-tree -um @ $commit_to_revert_to
我会做的。它是“git checkout”,但没有更新HEAD。
你可以达到同样的效果
git checkout $commit_to_revert_to
git reset --soft @{1}
如果您喜欢将方便的命令串在一起。
这将使你的工作树和索引处于所需的状态,你可以git提交完成。
这里有一个例子
cd /yourprojects/project-acme
git checkout efc11170c78 .
试试这个:
git checkout [revision] .
其中[revision]是提交散列(例如:123456789012345678901234567890123456789012345678ab)。
别忘了。最后,非常重要。这将对整个树应用更改。你应该在git项目的根目录下执行这个命令。如果您在任何子目录中,则此命令只更改当前目录中的文件。然后承诺,你应该是好的。
你可以通过
git reset --hard
这将从工作目录和暂存区域删除所有修改。
你可以在GitHub/BitBucket/Gitlab的提交部分找到与每个提交相关的提交id。 这很简单,假设你的提交id是5889575,那么如果你想回到代码中的这一部分,那么你只需要输入
git checkout 5889575 .
这将带您到代码中的那个时间点。
回退到特定的提交:
git reset --hard commit_sha
回滚10次提交:
git reset --hard HEAD~10
如果你不想重写历史,你可以像下面的帖子一样使用“git revert”
如何将Git存储库恢复到以前的提交?