SourceTree - 删除等待推送

tee*_*jay 14 git push commit git-commit atlassian-sourcetree

如何删除提交,等待推送到远程?

2推着等待

我的情况是,那些排队提交(更改)已被推送(更严重),现在服务器拒绝接受那些因为他们在HEAD后面.

我尝试重置为另一个提交,但是当我回到HEAD时,再次重新出现.

单击存储库>刷新远程状态将无济于事,它实际上添加了第二个等待推送:)

PS:我为我的术语道歉,我对git很新.

.

更新1

当我将feature2提交到master分支时,问题就开始了.我没有权利在那里提交所以它被卡住了.然后我再次回到我的个人分支,这很好.然后我有一个等待提交,永远不会被推,即使我单击Push时选择了正确的(个人)分支.

在此输入图像描述

R0M*_*RMY 30

Git提交形成提交图.分支只是该图中提交的提交的指针.

鉴于此,您的问题可以重述为

我的本地分支指向与远程分支不同的提交.如何使本地分支指向与远程分支相同的提交?

有两种方法可以实现这一目标.移动远程分支(git push)或移动本地分支(git reset).正如你所说,你不能推送到远程分支,所以选项1不在桌面上,留下选项2.

请注意,它reset在当前结帐分支1上运行,因此您首先要确保当前在分支上,然后将该分支移动到与远程分支相同的提交.

git checkout master               <--- make sure you're on the master branch
git reset --hard origin/master    <--- put your master branch on the same commit as origin/master
Run Code Online (Sandbox Code Playgroud)

既然masterorigin/master在同一个提交中,那么就不应该提交推送.


  1. reset在当前的HEAD上运行,但是为了这个解释,更容易将其视为在分支上运行.有关更多信息,请参阅此问题:Git中的HEAD是什么? .


fac*_*ias 6

您是否尝试过这样做:git reset --hard HEAD~1?这样,您将再次在本地存储库中获得头部。否则,我看到了一个可能有用的有趣页面:http://ibrokegit.com/

大多数时候,应该使用命令行而不是 GUI(在本例中为 SourceTree)来解决这个问题。

希望能帮助到你!