SourceTree - 删除等待推送

SourceTree - remove waiting pushes

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

我的情况是,那些排队的提交(更改)已经被推送(更多下文),现在服务器拒绝接受它们,因为它们在 HEAD 后面。

我尝试重置为另一个提交,但是当我返回 HEAD 时,推送再次出现。

点击 Repository > Refresh Remote Status 没有帮助,它实际上添加了第二次等待推送:)

PS:我为我的术语道歉,我对 git 很陌生。

.

更新 1

当我将 feature2 提交到 master 分支时,问题开始了。我无权在那里提交,所以它卡住了。然后我再次提交到我的个人分支机构,这没问题。然后我得到了一个等待提交,永远不会被推送,即使我 select 当我点击推送时正确的(个人)分支。

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

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

希望对您有所帮助!

Git 提交形成提交图。分支只是指向该图中提交的命名指针。

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

My local master branch is pointing to a different commit than the remote master branch. How do I make my local master branch point to the same commit as the remote master branch?

有两种方法可以做到这一点。移动远程分支 (git push) 或 移动本地分支 (git reset)。如您所说,您无法推送到远程 master 分支,因此选项 1 不在 table 中,剩下选项 2.

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

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

现在 masterorigin/master 在同一个提交上,应该没有要推送的提交。


  1. reset 对当前 HEAD 进行操作,但为了便于解释,将其视为对分支进行操作会更容易。有关详细信息,请参阅此问题:What is HEAD in Git? .