无法推或拉。 (Git / SourceTree)

时间:2015-12-29 16:55:27

标签: git github branch push pull

Git非常新,我目前正在使用SourceTree。

我发现自己陷入了一种非常有趣的境地,我似乎无法摆脱困境。我似乎无法拉动或推动代码。我似乎提前2次提交,2次提交,

as illustrated here.我只是想获得最新信息,因此我可以删除所有最近的代码,并继续工作。我不知道该怎么办。

我不想为我的承诺丢失工作,但如果真的很重要,我会这么做,因为它们很小。

为了使分支更新并与我的本地分支同步,最简单,最合适的路线是什么?

2 个答案:

答案 0 :(得分:2)

如果您没有未提交的更改

先拉。 SourceTree会要求您解决合并冲突,如果有的话。然后推动你的改变。

如果您有未提交的更改

Git有一个名为 stashing 的功能来保存未完成的更改。在SourceTree中,执行以下步骤:

  1. 选择您的存储库,单击主菜单中的存储库,然后单击存储更改
  2. 给你的藏匿名称"未提交的功能"并确保取消选中该复选框
  3. 现在提取所有最新更改
  4. 在您的文件左侧的树状菜单中,您会找到一个类别 Stashes ,展开它并搜索您创建的藏匿
  5. 右键单击并选择" apply stash"
  6. 如果有,则解决合并冲突。现在你应该像以前那样提交和推送。

答案 1 :(得分:1)

人们可能已经对您克隆的项目进行了更新(这解释了后面提交的内容),并且自从克隆以来,您也提交了提交,并且还没有推送(这解释了未来的提交)。你要做的是:

  

重置您的提交,但使用 git reset --soft HEAD ^

保留更改      

使用 git stash

隐藏更改

而不是,

  

使用 git pull origin branchName

在人头分支上更新人物

如果你没有藏匿,你现在可能会遇到冲突,因为系统不够智能,不知道什么是优先权:你改变了什么或者其他分支机构的人改变了什么。这可能不是那么容易解决,所以我强烈建议你在做“拉”之前存储你的更改。

现在,假设您已将新内容添加到分支中,

  

通过执行以下操作获取您的更新: git stash apply

现在您没有提交,但您的更改正在等待提交,

  

如此单独,提交您的提交而不是使用: git push origin branchName