我对代码进行了一些更改然后执行了以下操作: git add。 git commit git push origin master。
现在我意识到我犯了一些错误,我想找回前一次提交的代码,然后重新进行更改并将它们推回服务器。
这是git log输出:
commit 3254c7668610a86eb930798c3c50fb5e1c298cbf
Author: Subhayan Bhattacharya <subhayan.bhattacharya@hpe.com>
Date: Wed Sep 6 00:53:39 2017 -0700
Made changed to downloadpkgapp.sh
commit c6577344eaa7ed1ac7fc911892cf85f66a0ac0b9
Author: Subhayan Bhattacharya <subhayan.bhattacharya@hpe.com>
Date: Wed Aug 16 02:56:17 2017 -0700
commiting changes to file CallProgram.py
commit 3839fa51edb20812c10d96f40b36aaa4fada9200
Author: dheeraj.mittal <dheeraj.mittal@hpe.com>
Date: Sun Jun 11 11:17:41 2017 +0200
added execute permission command for application package
有人请帮我一样。我很难理解GIT。因此,如果有人也可以解释建议的任何步骤,那就太棒了。
答案 0 :(得分:0)
如果您在分支master
上有3个提交(例如A,B和C),请将它们推送到远程(例如origin
),然后确定您已创建了与C的错误并想要恢复它,你应该首先确保没有其他人拉动分支。如果他们有,你的提交就是他们。
如果没有,您可以先将master
分支机构重置为B
,
git reset --hard B
然后使用
再次强制推送master
git push --force origin master
然而,这改变了项目的历史,所以只有在你了解后果的情况下才这样做。
答案 1 :(得分:0)
当您推送到远程存储库时要小心,因为其他人可能已经错误提交了。
我认为你应该考虑把它留在那里,并做一些恢复操作。
首先,如果您的提交只是正常提交,您可以使用git revert <last-commit>
简单地还原您的更改并推送到存储库。
其次,如果你的提交是合并提交,你应该小心。在这里,您应该使用git revert <last-commit> -m 2
将状态恢复为源分支。
您可以学习Undoing Merges或git revert --help
来了解相关信息。
答案 2 :(得分:-1)
我建议您使用像Git Extensions这样的git图形界面。跟踪发生的事情会更容易......
使用Git Extensions,您可以:
1)确保您没有任何未提交的更改。在提交中包含任何更改,以确保您不会失去它
2)在上次提交中创建一个新分支:单击上次提交,按右键并选择&#34;创建新分支&#34;。在对话框中,不要在创建选项&#34;后选择&#34; Checkout。将新分支称为&#34;不正确&#34;
3)选择最后一次正确的提交,然后按右键并选择&#34;将当前分支重置为此处&#34;。选择&#34; Hard&#34;重置类型。
4)使用您需要的提交重做所有代码修改
5)按&#34;按&#34;按钮并在推送对话框中选择&#34;选项&#34;并检查&#34;强制租赁&#34;这将强制将服务器更新到新的提交。
小心!:如果有人使用您之前的提交撤消了更改,那么如果您更改服务器中的提交历史记录,则会产生很多混淆。如果有人有您之前的提交,您应该使用错误维护提交历史记录并在新提交中进行更正。
当您确定不需要它时,您可以删除&#34;不正确的&#34;分支。