mic*_*ael 226 git git-push git-commit
我演出git commit后跟着一个git push.如何在本地和远程存储库上还原该更改?
$ git log
commit 364705c23011b0fc6a7ca2d80c86cef4a7c4db7ac8
Author: Michael Silver <Michael Silver@gmail.com>
Date: Tue Jun 11 12:24:23 2011 -0700
Run Code Online (Sandbox Code Playgroud)
Ale*_*roß 377
git reset --hard HEAD~1
git push -f <remote> <branch>
Run Code Online (Sandbox Code Playgroud)
(实施例推: git push -f origin bugfix/bug123)
这将撤消上次提交并将更新的历史记录推送到远程.您需要传递,-f因为您正在替换远程中的上游历史记录.
Ama*_*dan 153
通常,使用以下命令进行"反向"提交:
git revert 364705c
Run Code Online (Sandbox Code Playgroud)
然后像往常一样将它发送到遥控器:
git push
Run Code Online (Sandbox Code Playgroud)
这不会删除提交:它会进行额外的提交,撤消第一次提交所做的任何操作.其他任何东西,都不是很安全,特别是当变化已经传播时.
kmo*_*oor 37
首先,放松一下.
"没有什么是在我们的控制之下.我们的控制仅仅是幻觉.","犯错误就是人"
我知道你无意中将代码推送到了remote-master.这样就好了.
1.首先,获取SHA-1您尝试返回的提交的值,例如,提交到master分支.运行这个:
git log
Run Code Online (Sandbox Code Playgroud)
你会看到一堆'f650a9e398ad9ca606b25513bd4af9fe ......'和每个提交一样的字符串.从要返回的提交中复制该数字.
2.现在,输入以下命令:
git reset --hard your_that_copied_string_but_without_quote_mark
Run Code Online (Sandbox Code Playgroud)
你应该看到像"HEAD现在在"的消息.你很清楚.它刚刚做的是在本地反映这种变化.
3.现在,输入以下命令:
git push -f
Run Code Online (Sandbox Code Playgroud)
你应该看到像
"警告:push.default未设置;其隐含值已更改......总计0(增量0),重用0(增量0)...... ... your_branch_name - >主(强制更新) ".
现在,你们都清楚了.再次使用"git log"检查master,你的fixed_destination_commit应该在列表的顶部.
欢迎您(提前;))
更新:
现在,在所有这些开始之前你所做的改变现在已经消失了. 如果你想再次带回那些艰苦的工作,那就有可能.感谢git reflog和git cherry-pick命令.
尝试使用
git reset --hard <commit id>
Run Code Online (Sandbox Code Playgroud)
请注意:这里的提交 ID 是您想要转到的提交的 ID,而不是您想要重置的 ID。这是我也陷入困境的唯一一点。
然后推
git push -f <remote> <branch>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
118379 次 |
| 最近记录: |