Git - 从master更新当前分支而不提交当前分支更改

时间:2015-06-02 14:50:12

标签: git github

我看过很多关于同一主题的问题,他们都有不同的答案,这让人感到困惑。

有人说先提交您的更改,但我不想这样做。

我也在使用Git Hub,并且不明白它如何与网站命令一起使用,例如创建拉取请求,比较叉子,尝试更改基础等等......

我想只需将当前分支拖动到右边的方块并将repo master分支拖动到左边的方块然后单击Merge Branches按钮就可以了,但是右上方有一个“sync”按钮需要之后点击,我猜,然后你需要在网站上做拉动请求......等等。

Sheesh,在CVS中,我只是点击了更新,它将Head中的所有更改都记录到了当前,就是这样。

我猜有三种选择。使用git hub,使用网站和/或使用命令行。 怎么能简化呢?

4 个答案:

答案 0 :(得分:4)

这取决于您的本地存储库相对于上游的状态。

  • 如果存在冲突,那么在拉动分支之前最好先收藏工作。这样就可以实现:

    git add . && git stash save
    git pull
    git stash pop
    

    如果您不想处理合并,那么您可以改为修改您的分支,这并不要求您保存工作(但会提示您发生冲突):

    git pull --rebase
    

    您必须使用您选择的合并工具处理冲突。

  • 如果没有冲突,那么您只需将分支拉入。

    git pull
    

Github在所有这些方面的作用仅仅是提供您从中/向其推送的远程存储库。除非您没有远程设置,否则无需担心;然后我引用你的wonderful documentation来了解如何设置远程存储库。

答案 1 :(得分:1)

您的情况:

  • 你在一个上游可能有或没有的分支上,这是从一个旧的主提交分支出来的
  • 您没有未分期更改
  • 您有未提交的更改
  

"有人说先提交您的更改,但我不想这样做"

没有真正的理由不去;在你push上游之前,它仍然是你的私人工作分支。

所以:

如果您尚未推送:

  • git commit -m WorkInProgress(或git stash
  • git rebase master
  • 解决所有冲突
  • git stash pop如果你藏匿

如果你已经推了:

  • 确保您当前分支机构的提交是生产质量
  • git stash
  • git pull(不会发生冲突,但会创建合并提交)
  • git stash pop

答案 2 :(得分:0)

您可以使用git stash存储当前分支中的更改。有关详细信息,请参阅:https://git-scm.com/book/en/v1/Git-Tools-Stashing

答案 3 :(得分:0)

您可以执行大多数IDE和某些工具提供的修补程序,或者如果使用Intellij IDEA,则存在类似于存储的存储,这些更改不会保留在git中,而是存储在IDEAs项目文件中。

但最后,对于你目前的情况git stash是可行的方法。

从长远来看,最好只阅读更多关于git的内容,因为它和CVS之间存在差异,你必须要考虑 现在分两个阶段。您不直接与远程github或其他任何东西进行交互。您的本地仓库就像您以前的“保存”按钮,远程仓库与您的本地同步。甚至在CVS中,如果你忘了保存,大多数系统都抱怨......