Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 在远程主分支上合并_Git_Bash_Ubuntu - Fatal编程技术网

Git 在远程主分支上合并

Git 在远程主分支上合并,git,bash,ubuntu,Git,Bash,Ubuntu,我目前正在设备上的一个新分支上。我想合并我对远程分支主机所做的修改 我想我必须遵循这个程序,但我不确定: git checkout origin master git pull origin master git merge "new_branch" git push origin master 这个程序好吗? 有没有更有效的方法来做同样的事情?您只需获取,然后合并即可 git checkout newbranch git fetch git merge origin/master 在这里,

我目前正在设备上的一个新分支上。我想合并我对远程分支主机所做的修改

我想我必须遵循这个程序,但我不确定:

git checkout origin master
git pull origin master
git merge "new_branch"
git push origin master
这个程序好吗?

有没有更有效的方法来做同样的事情?

您只需获取,然后合并即可

git checkout newbranch
git fetch
git merge origin/master
在这里,
fetch
足以更新远程跟踪分支(在
.git/refs/remotes/origin
中的分支):您可以直接从其中一个分支合并,如
origin/master

我喜欢它,因为它不会更改工作树中的任何文件,所以这是安全的第一步。
将获取并合并到当前分支中

作为附加步骤,您可以根据需要更新本地主分支。
我推荐

git config --global pull.rebase true
git config --global rebase.autoStash true
这样,即使您已经在master上进行了一些本地提交,并且有一些挂起的修改,这也足够了:

git checkout master
git pull
git checkout master      # removed origin
git pull origin master
git merge new_branch     # removed quotes
git push origin master

您建议的步骤很好(有一些修改):

这种方法是用更改来更新本地
主机
分支,然后直接更新远程
主机
。但是,如果您使用的是诸如GitHub或Bitbucket之类的回购提供商,则可能无法直接更新远程
分支。在这种情况下,您将创建一个从分支到
master
的pull请求,实际上您将以相反的方向进行合并,即您将
master
合并到
新分支

git fetch origin         # update origin/master
git checkout new_branch
git merge origin/master
git push origin new_branch

从这里,您可以在GitHub或您正在使用的任何服务中创建一个pull请求。

您能告诉我fetch和pull之间的区别吗?
git pull=git fetch+git merge
(大部分情况下)