我看过很多关于同一主题的问题,他们都有不同的答案,这让人感到困惑。
有人说先提交您的更改,但我不想这样做。
我也在使用Git Hub,并且不明白它如何与网站命令一起使用,例如创建拉取请求,比较叉子,尝试更改基础等等......
我想只需将当前分支拖动到右边的方块并将repo master分支拖动到左边的方块然后单击Merge Branches按钮就可以了,但是右上方有一个“sync”按钮需要之后点击,我猜,然后你需要在网站上做拉动请求......等等。
Sheesh,在CVS中,我只是点击了更新,它将Head中的所有更改都记录到了当前,就是这样。
我猜有三种选择。使用git hub,使用网站和/或使用命令行。 怎么能简化呢?
答案 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中,如果你忘了保存,大多数系统都抱怨......