我读过关于这个主题的类似帖子,但我不知道如何正确地做到这一点。
我签入了大约1000个我不想要的文件,我宁愿不需要逐个检查并将它们全部从回购中删除。
我有一个远程主分支。
我有本地主分支。
他们都在同一个修订。
我想回滚我的远程1提交。
我的历史是A- B- C- D- E。
我想回滚我的本地到D。
然后把它推到远程,所以我的当前哈希将是D远程和本地。
我做这个有问题。
我正在使用Git Tower,但对命令行很熟悉。任何帮助吗?
更新:
下面的评论很棒。使用重置似乎在一定程度上是不鼓励的,特别是当存储库与其他用户共享时。
在不使用硬重置的情况下撤销之前提交的更改的最佳方法是什么?有办法吗?
如果你只想在不破坏本地存储库的情况下从远程存储库中删除最后一次提交,这里有一行代码:
git push origin +origin/master~:master
使用以下语法:
git push <remote> <refspec>
这里,<remote>是origin, <refspec>有以下结构:
+origin/master~:master
详见git-push(1)。前面的+表示“force push this ref”,另一部分表示“from origin/master~ to master (from remote origin)”。不难知道origin/master~是origin/master之前的最后一次提交,对吗?