Git 将我的本地分支与远程主机合并

Git 将我的本地分支与远程主机合并,git,merge,Git,Merge,我是git的新手。我正在与一个团队进行代码库工作。 我的远程存储库的状态为: git remote show origin # show the status Remote branches: .... master tracked branch_to_be_merged

我是git的新手。我正在与一个团队进行代码库工作。 我的远程存储库的状态为:

git remote show origin                                # show the status
Remote branches:
....
                     master                             tracked
                     branch_to_be_merged                 tracked
...
Local branches configured for git pull:
master                                                 merges with remote master
branch_to_be_merged                                      merges with remote branch_to_be_merged      

Local refs configured for git push:
master                                                 pushes to master
branch_to_be_merged                                       pushes to  branch_to_be_merged       
我一直在开发
分支机构待合并
的一项功能,而
主机
正在积极开发中。 现在我需要向公众提供我的特性,我将使用以下一系列git命令进行合并

以下是正确的吗

git fetch origin                #make sure I am updated with latest remote changes
git checkout -b branch_to_be_merged   # the currently checked out branch is the one of interest
git branch                      # check I am on the branch I would like to merge later (it should now show *branch_to_be_merged)
git pull origin master           # apply the latest remote changes to my local branch_to_be_merged [I EXPECT CONFLICTS HERE]
git push branch_to_be_merged     # push the changes to remote
git checkout -b master           # the currently checked out branch is master
git branch                      # check I am on the branch I would like to merge later (it should now show *master)
git pull origin master           # apply the latest remote changes to my local master
git merge branch_to_be_merged    # merge  branch_to_be_merged to local master
git push master                 # publish the updates to master

签出主控时不需要使用-b开关,因为分支已经存在

签出主控时不需要使用-b开关,因为分支已经存在

您可以使用注释版本
#您不需要输入“origin”。如果您有多个远程设备,可以使用'git fetch--all'
git fetch origin#确保我已更新了最新的远程更改
#'-b'创建一个新分支,这是不可能的,因为该分支已经存在。删除'-b'
git checkout-b branch_to_be___merged#当前签出的分支是感兴趣的分支
git branch#检查我是否在稍后要合并的分支上(现在应该显示*branch_to_be_merge)
#我建议不要这样做。通常,“pull”用于更新
#与远程分支同名的本地分支(它是
#'git fetch&&git merge origin/branch\u name'。
#其次,“pull”可以配置为使用“merge”或“rebase”
#因此,该命令的行为取决于某些配置
git pull origin master#将最新的远程更改应用到我的本地分支以合并[我预计这里会有冲突]
#如果将分支合并回主分支,则可能会删除
#以后再做。因此,你不需要推它。你会推你的
#在推送更新的主分支时提交
git将分支推到合并,将更改推到远程
#同样,对于现有分支,没有'-b'
git checkout-b master#当前签出的分支是master
git分支#检查我是否在稍后要合并的分支上(现在应该显示*master)
#只需使用git pull,因为这将自动引入更改
#从正确的远程分支(因此您不会意外地拉取更改
#(来自不同的分支)
git pull origin master#将最新的远程更改应用于我的本地master
git merge branch_to_be_merge#merge branch_to_be_merge to local master
git push master#将更新发布到master
短解 我建议使用以下命令:

git签出主机
#您根本不需要git获取,因为pull执行获取
吉特拉力
git合并分支u to u be u merge#此处合并冲突
git推送
#(可选)删除合并的分支及其远程分支
吉特分行-d分行待合并
git推送源:分支到要合并的分支
您可以使用带有注释的版本
#您不需要输入“origin”。如果您有多个远程设备,可以使用“git fetch--all”
git fetch origin#确保我已更新了最新的远程更改
#“-b”将创建一个新分支,这是不可能的,因为该分支已存在。请删除“-b”
git checkout-b branch_to_be___merged#当前签出的分支是感兴趣的分支
git branch#检查我是否在稍后要合并的分支上(现在应该显示*branch_to_be_merge)
#我建议不要这样做。通常,“pull”用于更新
#与远程分支同名的本地分支(它是
#'git fetch&&git merge origin/branch\u name'。
#其次,“pull”可以配置为使用“merge”或“rebase”
#因此,该命令的行为取决于某些配置
git pull origin master#将最新的远程更改应用到我的本地分支以合并[我预计这里会有冲突]
#如果将分支合并回主分支,则可能会删除
#以后再做。因此,你不需要推它。你会推你的
#在推送更新的主分支时提交
git将分支推到合并,将更改推到远程
#同样,对于现有分支,没有'-b'
git checkout-b master#当前签出的分支是master
git分支#检查我是否在稍后要合并的分支上(现在应该显示*master)
#只需使用git pull,因为这将自动引入更改
#从正确的远程分支(因此您不会意外地拉取更改
#(来自不同的分支)
git pull origin master#将最新的远程更改应用于我的本地master
git merge branch_to_be_merge#merge branch_to_be_merge to local master
git push master#将更新发布到master
短解 我建议使用以下命令:

git签出主机
#您根本不需要git获取,因为pull执行获取
吉特拉力
git合并分支u to u be u merge#此处合并冲突
git推送
#(可选)删除合并的分支及其远程分支
吉特分行-d分行待合并
git推送源:分支到要合并的分支

好的,这很清楚。根据您的解决方案,在将分支与主分支合并之前,不需要将主分支与分支合并?如果主分支自创建以来发生了很大变化,该怎么办?如果在合并到
master
时存在任何合并冲突,您将在
master
上使用conf进入
merging
状态licting由git标记的文件。解决冲突后,git添加这些冲突的文件,并发出git提交,从而完成合并。要中止(冲突的)合并,可以在
master
上使用
git reset--hard
(注意此命令会删除工作目录中的任何更改)。请参见BTW上的“基本合并冲突”。如果您将
master
合并到分支中,则您将有相同的合并冲突。区别在于,您最终会提交两个
Merge
提交,一个用于合并