我是Github存储库的成员,其中有三个分支master
,dev
和deployment
。
我在本地计算机上克隆了存储库:
git clone git@github.com:COMPANY/repo.git
我需要做的是将dev branch
中推送的更改合并到master branch
,然后将master branch
合并到deployment branch
。我的问题是我只在我的本地克隆上看到master branch
。
我尝试做的方式如下:
我在本地存储库中创建了dev branch
和deployment branch
,其中包含:git checkout -b dev
和git checkout -b deployment
。
我使用dev branch
和deployment branch
从原点抓取git pull origin dev
和git pull origin deployment
。
我切换到master branch(git checkout master)
并将dev branch
合并到其中:git merge dev
。
然后我切换到deployment branch(git checkout deployment)
并将master branch
合并到其中:git merge master
。
这是正确的程序还是有更好的方法?
如何将两个合并分支中的所有更改推回到Github上的原点?
答案 0 :(得分:0)
我担心你使用了错误的步骤顺序。您不应该使用dev
创建deployment
和git checkout -b dev
分支。这将创建从当前分支分支出来的本地分支 - 这可能不是您想要的。
干净的方式看起来像这样:
# Clone the repo
git clone git@github.com:COMPANY/repo.git
# Fetch everything, just to be sure
git fetch --all
# Take a look at the available branches
# This should list the remote dev and deployment branches in the form 'remotes/origin/dev'
git branch -a
# Now simply check out the dev branch without creating a new branch
git checkout dev
Git知道,如果有一个名为dev
的远程分支并且您没有匹配的本地分支,那么当您执行git checkout dev
时它应该使用远程分支(没有-b
切换!)。它将自动从远程dev
分支创建新的本地dev
分支。