如何在生产中恢复特定的git checkout?

时间:2013-06-06 11:22:07

标签: git

我知道这已在其他地方详细解答,但我只需要一个简单的答案......我无法理解the long discussions elsewhere

情况就是这样:

  1. 开发机器 - 将变更集X推向头部。
  2. 生产机器 - 拉动变速箱X.生产机器断裂。
  3. 开发人员发生恐慌,希望恢复生产机器上的变更集X-1,而不删除变更集X.
  4. 在生产机器上执行此操作的简单方法是什么?

    感谢。

    更新:我应该一直在寻找“回滚”变更集,而不是“还原”!如果你处于同样的情况,那么你应该这样做 - 即你想在本地返回一个特定的提交,而不是改变git历史。

2 个答案:

答案 0 :(得分:1)

好吧,您可以使用标记来保留参考commit X

git tag commit_X -m 'this is the commit that causes problem'
git reset --hard HEAD^
git push --tags
git push -f

稍后如果您想要结帐commit X并查看其中发生了什么,只需使用commit_X标记即可恢复变更集。

答案 1 :(得分:0)

好的,这似乎有效:

git log | more

然后找到您想要返回的条目,例如:

commit 4facf8fc299a545557b4a47a61ed876efe55eab6
Date:   Thu May 30 19:17:32 2013 +0100
Fix syntax error

然后输入:

git checkout 4facf8fc299a545557b4a47a61ed876efe55eab6