如何将旧版提交到生产中?

时间:2015-02-14 01:43:59

标签: git version-control push production

如何将旧的提交推送到生产中,以查看哪个提交最终破坏了生产。我不想修改任何历史记录,我只想选择已经在历史记录中的提交,只需将其推送到生产中,无需任何复杂的分离头或编辑任何文件。

为什么它如此困难,文档如此稀疏(稀疏或不必要的模糊和冗长的如何做非常基本的直观事物?

2 个答案:

答案 0 :(得分:0)

您可以使用bisect来识别哪个提交会中断,还原,提交和推送它。

答案 1 :(得分:0)

完全指定的git push语法为:

git push REMOTE LOCAL-BRANCH:REMOTE-BRANCH

根据您的情况更换每件作品。类似的东西:

git push -f production WORKINGHASH:master

可能就是你要找的东西。 -f将允许您在远程处重写历史记录,如果您尝试透明地回滚更改,这将是必要的。

由于您关注文档,git push man page完全符合您在“选项”部分的前两段中所寻找的内容:

  

<repository>:   作为推送操作目标的“远程”存储库。此参数可以是URL ...或远程名称。

     

<refspec>...:   使用什么源对象指定要更新的目标。 <refspec>参数的格式是......源对象<src>,后跟冒号:,后跟目标引用<dst>

此处还记录了-f标志:

  

-f / --force:   通常,该命令拒绝更新远程ref,该远程ref不是用于覆盖它的本地ref的祖先。 ...此标志禁用这些检查...