从源

时间:2015-07-15 22:36:17

标签: git svn github version-control merge

我是Github存储库的成员,其中有三个分支masterdevdeployment

我在本地计算机上克隆了存储库: git clone git@github.com:COMPANY/repo.git

我需要做的是将dev branch中推送的更改合并到master branch,然后将master branch合并到deployment branch。我的问题是我只在我的本地克隆上看到master branch

我尝试做的方式如下:

  1. 我在本地存储库中创建了dev branchdeployment branch,其中包含:git checkout -b devgit checkout -b deployment

  2. 我使用dev branchdeployment branch从原点抓取git pull origin devgit pull origin deployment

  3. 我切换到master branch(git checkout master)并将dev branch合并到其中:git merge dev

  4. 然后我切换到deployment branch(git checkout deployment)并将master branch合并到其中:git merge master

  5. 这是正确的程序还是有更好的方法?

    如何将两个合并分支中的所有更改推回到Github上的原点?

1 个答案:

答案 0 :(得分:0)

我担心你使用了错误的步骤顺序。您不应该使用dev创建deploymentgit 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分支。