簡體   English   中英

如何使用命令行推送“撤消推送提交”?

[英]How to push "undo pushed commit" using command line?

編輯:好的,所以我解決了。 問題是我如何陳述分支名稱。 它應該是git push -f origin card-editor而不是git push -f origin/card-editor 謝謝。


大多數時間我使用 git,我使用 sourcetree。 除非發生“大災難”的事情。 這是其中一種情況(對我而言)。 長話短說,我做了一個提交和推送,但現在我想在本地撤消它,以及在遠程撤消它。

我從這里開始學習教程。 我成功地reset --hard到最后一次好的提交。 現在只需要將它推送到服務器即可。

本教程的方式看起來非常簡單。

git push -f branchname

我的功能分支遠程名稱是“card-editor”。 所以我做到了。

git push -f card-editor

但是我收到錯誤消息說“card-editor”似乎不是 git 存儲庫。

我用git branch -r列出了我的分支列表。

origin/HEAD -> origin/master
origin/card-editor
origin/development
origin/staging
origin/production

好吧,所以我認為分支名稱是origin/card-editor 所以我重試了。

git push -f origin/card-editor

但它仍然顯示“origin/card-editor”似乎不是 git 存儲庫。

我的方法有什么問題? 我不認為這里需要做一些特別的事情嗎? 我不是特別精通Git,尤其是控制台命令,因為通常我使用sourcetree來管理它。

如果您真的已經將不需要的提交推送到遠程,那么這里最安全的方法是還原提交:

# assuming the unwanted commit is on the top of the branch
git revert HEAD
git push origin master

命令git revert添加了一個的提交,它在功能上撤消了您的提交引入的任何更改。 這種方法比git reset更安全,因為后者會重寫歷史記錄,因此一旦提交已經被推送到遠程,就不適用了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM