git 从原点合并分支的过程

git procedure to merge branches from origin

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

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

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

我尝试做要求的方法如下:

  1. 我在我的本地存储库上创建了一个 dev branch 和一个 deployment branchgit checkout -b devgit checkout -b deployment.

  2. 我从原点提取了 dev branchdeployment branchgit 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.

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

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

恐怕您使用了错误的步骤顺序。您不应该使用 git checkout -b dev 创建 devdeployment 分支。这将创建从当前分支分支出来的本地分支 - 这可能不是您想要的。

干净的方式应该是这样的:

# 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 分支。