如何在不签出到其他分支的情况下将最新代码拉到该分支



我有一个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_HEADgit fetch更新,并由git merge命令用于存储要合并到的提交-当您执行git pull时,这是合并到本地分支的最新提交。

来自A0文档:

如果没有从命令行提交,请合并当前分支配置为用作其上游另请参阅本手册页面的配置部分。

当指定了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

相关内容

最新更新