我有一个git存储库,我在分支A
上。如何在不检出master的情况下将最新代码拉到本地master分支?我知道我可以执行以下代码:
git checkout master
git pull
但是如果我在当前分支A
中更改了文件。在更改为master分支之前,我必须提交或存储它。有没有办法让我在当前分支A
中做到这一点?
由于我始终在个人分支上工作,并且仅将master用于只读目的,因此master中没有任何本地提交。
答案 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_HEAD
由git 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
它应该(未测试)合并两个不同的分支,同时保持活动完整