如何在不签出该分支的情况下将最新代码拉到另一个分支?

时间:2018-07-27 05:06:52

标签: git

我有一个git存储库,我在分支A上。如何在不检出master的情况下将最新代码拉到本地master分支?我知道我可以执行以下代码:

git checkout master
git pull

但是如果我在当前分支A中更改了文件。在更改为master分支之前,我必须提交或存储它。有没有办法让我在当前分支A中做到这一点?

由于我始终在个人分支上工作,并且仅将master用于只读目的,因此master中没有任何本地提交。

4 个答案:

答案 0 :(得分:1)

如果 4-2017 2 5-2017 0 ... 11-2017 1 12-2017 1 ... 4-2018 2 ... 11-2018 1 12-2018 1 没有任何本地提交,则它指向与master相同的提交。在这种情况下,拥有它没有多大意义。无论出于何种目的需要母版,使用都可以使用origin/master,这样您就不必维护本地origin/master

master

...等等。

答案 1 :(得分:0)

似乎您想保持master分支的最新状态,以便以后可以执行此操作:

$ git checkout master
$ git merge A

但是您不需要严格地将master分支保持最新,直到完成A为止,因为origin/master远程跟踪分支将被保留进行抓取时保持最新状态(这将使分支A不受影响,因为抓取只会从远程存储库中获取更改,而根本不会更改本地分支。)。实际上,这是远程跟踪分支的真正目的。

然后,当您准备将分支A合并到master时,就可以在master分支上进行合并(git pull自动执行-只需进行提取通过合并):

$ git checkout master
$ git fetch
$ git merge FETCH_HEAD

FETCH_HEADgit fetch更新,并由git merge命令用来存储要合并的提交-当您执行git pull时,这就是最新的提交已合并到您的本地分支中。

来自git-merge文档:

  

如果未从命令行给出提交,则合并当前分支配置为用作其分支的远程跟踪分支              上游的。另请参见本手册页的“配置”部分。

     

如果指定了FETCH_HEAD(并且没有其他提交),则先前为合并而调用的.git/FETCH_HEAD记录在git fetch文件中的分支将合并到当前分支。

>

答案 2 :(得分:0)

获取最新的develop并将其合并到您当前的分支中:

git fetch origin develop && git merge origin/develop

答案 3 :(得分:0)

可以使用以下内容:

git pull origin origin-branch-name:local-branch-name

以上将原始分支与本地分支合并

git merge another-local-branch:another2-local-branch

它应该(未测试)合并两个不同的分支,同时保持活动完整