我如何在不删除任何更改的情况下“回滚”git中的最后一次提交?这是我在hg中经常做的事情:提交“修复107”。记得我忘记做某事Mercurial回滚做某事提交“修复107”。 最佳答案 试试这个:gitreset--softHEAD^我发现它与“hgrollback”相同,因为:上次提交已取消保留更改暂存之前提交的文件你也可以像这样创建一个rollbackgit别名:gitconfig--globalalias.rollback'reset--softHEAD^'因此,您现在只需键入gitrollback即可获得与在Mercuria
当我通过TortoiseGit执行gitrevert时,我得到这个可爱的窗口:但是,当我想从命令行执行相同操作时,thedocumentation设法完全混淆了我。如何还原所有本地未提交的更改? 最佳答案 要放弃所有本地更改,请不要使用revert。revert用于还原提交。相反,做:$gitreset--hard当然,如果您像我一样,在您输入该命令后7微秒,您会记住一些您不希望刚刚删除的内容,因此您可能更喜欢使用:$gitstashsave'Somechanges'丢弃工作目录中的更改,但使它们可检索。
当我通过TortoiseGit执行gitrevert时,我得到这个可爱的窗口:但是,当我想从命令行执行相同操作时,thedocumentation设法完全混淆了我。如何还原所有本地未提交的更改? 最佳答案 要放弃所有本地更改,请不要使用revert。revert用于还原提交。相反,做:$gitreset--hard当然,如果您像我一样,在您输入该命令后7微秒,您会记住一些您不希望刚刚删除的内容,因此您可能更喜欢使用:$gitstashsave'Somechanges'丢弃工作目录中的更改,但使它们可检索。
我有一个网络服务器,为一个项目提供服务,该项目是一个git存储库。当我对代码进行一些更改时,我会从服务器执行gitpull。有时新代码会崩溃,我希望能够回滚到最新的pull,即之前的pull。我想用脚本来做到这一点,而不必搜索最新的sha。我该怎么做?编辑:澄清一下,我只想做一个Action,比如按下一个按钮,上面写着“哎呀!我刚刚做的最近一次pull是个错误,我希望我没有那样做”。在这种情况下,我不想寻找sha或标签或其他任何东西,它更像是一个“撤消”功能。然后我希望能够继续处理代码,并且服务器的下一次pull需要带来最新的更改。 最佳答案
我有一个网络服务器,为一个项目提供服务,该项目是一个git存储库。当我对代码进行一些更改时,我会从服务器执行gitpull。有时新代码会崩溃,我希望能够回滚到最新的pull,即之前的pull。我想用脚本来做到这一点,而不必搜索最新的sha。我该怎么做?编辑:澄清一下,我只想做一个Action,比如按下一个按钮,上面写着“哎呀!我刚刚做的最近一次pull是个错误,我希望我没有那样做”。在这种情况下,我不想寻找sha或标签或其他任何东西,它更像是一个“撤消”功能。然后我希望能够继续处理代码,并且服务器的下一次pull需要带来最新的更改。 最佳答案
好的,所以当我尝试恢复提交(使用Git)时有时会遇到错误。我所做的就是gitrevert它给了我这个信息:error:couldnotreverthint:afterresolvingtheconflicts,markthecorrectedpathshint:with'gitadd'or'gitrm'这是否意味着我应该使用gitmergetool并解决任何冲突?执行此操作后,我可以添加/rm然后提交,然后完成还原吗? 最佳答案 是的,你必须解决冲突,用gitadd或gitrm和gitcommit标记它们提交尚未完成,在gitrev
好的,所以当我尝试恢复提交(使用Git)时有时会遇到错误。我所做的就是gitrevert它给了我这个信息:error:couldnotreverthint:afterresolvingtheconflicts,markthecorrectedpathshint:with'gitadd'or'gitrm'这是否意味着我应该使用gitmergetool并解决任何冲突?执行此操作后,我可以添加/rm然后提交,然后完成还原吗? 最佳答案 是的,你必须解决冲突,用gitadd或gitrm和gitcommit标记它们提交尚未完成,在gitrev
在Git中,如果您对rebase不满意,该如何回滚?Git没有rebase试运行。如果我做了一个rebase但还没有推送它,我该如何回滚到以前,就好像它从未发生过一样? 最佳答案 您可以使用reflog在rebase开始之前找到第一个Action,然后重置--hard回到它。例如$gitreflogb710729HEAD@{0}:rebase:somecommit5ad7c1cHEAD@{1}:rebase:anothercommitdeafcbfHEAD@{2}:checkout:movingfrommastertomy-bran
在Git中,如果您对rebase不满意,该如何回滚?Git没有rebase试运行。如果我做了一个rebase但还没有推送它,我该如何回滚到以前,就好像它从未发生过一样? 最佳答案 您可以使用reflog在rebase开始之前找到第一个Action,然后重置--hard回到它。例如$gitreflogb710729HEAD@{0}:rebase:somecommit5ad7c1cHEAD@{1}:rebase:anothercommitdeafcbfHEAD@{2}:checkout:movingfrommastertomy-bran
developbranch-->dashboard(workingbranch)我使用gitmerge--no-ffdevelop将任何上游更改merge到仪表板中git日志:commit88113a64a21bf8a51409ee2a1321442fd08db705Merge:981bc20888a557Author:XXXXDate:MonJul3008:16:462012-0500Mergebranch'develop'intodashboardcommit888a5572428a372f15a52106b8d74ff910493f01Author:rootDate:SunJul