我有一个git存储库,并且我在分支A
上。如何在不签出master的情况下将最新代码拉到本地master分支?我知道我可以做以下代码:
git checkout master
git pull
但是如果我已经更改了当前分支CCD_ 2中的文件。在转换到master分支之前,我必须提交或隐藏它。在我目前的分支机构A
中,有没有办法做到这一点?
我在master中没有任何本地提交,因为我总是处理个人分支,并且我只将master用于只读目的。
如果master
没有任何本地提交,则它指向与origin/master
完全相同的提交。在这种情况下,拥有它没有多大意义。无论出于什么目的,你需要一个主控器,use都可以使用origin/master
,这样你就不必维护本地master
:
$ git branch <feature> origin/master # make new feature branch
$ git log ..origin/master # see what is new in the upstream
$ git diff origin/master...HEAD # see your changes
等
您似乎想让master
分支保持最新,以便以后可以执行此操作:
$ git checkout master
$ git merge A
但是,在完成A
之前,您不需要严格保持master
分支的最新状态,因为origin/master
远程跟踪分支将在您进行提取时保持最新状态(这将使分支A
不受影响,因为提取只会从远程存储库中获得更改,而不会更改本地分支。(。事实上,这正是远程跟踪分支的目的。
然后,当你准备将分支A
合并到master
时,你可以在master
分支上进行合并(git pull会自动进行,这只是一个提取,然后是一个合并(:
$ git checkout master
$ git fetch
$ git merge FETCH_HEAD
FETCH_HEAD
由git fetch
更新,并由git merge
命令用于存储要合并到的提交-当您执行git pull
时,这是合并到本地分支的最新提交。
来自A
0文档:
如果没有从命令行提交,请合并当前分支配置为用作其上游另请参阅本手册页面的配置部分。
当指定了
FETCH_HEAD
(并且没有其他提交(时,通过先前调用git fetch
进行合并而记录在.git/FETCH_HEAD
文件中的分支将合并到当前分支。
可以使用以下内容:
git pull origin origin-branch-name:local-branch-name
以上将合并原始分支和本地分支
git merge another-local-branch:another2-local-branch
它应该(不测试(合并两个不同的分支,同时保持活动的完整
获取最新的develop
并将其合并到当前分支:
git fetch origin develop && git merge origin/develop