Git-将一个仓库的分支合并到另一个仓库的分支

时间:2018-10-04 18:15:33

标签: git github merge git-merge

我有两个存储库,我想将更新从一个存储库合并到另一个存储库。我执行了以下操作,并得到了“已经更新”

$ ls
dev qa

$ cd dev
$ git branch
* master
  temp-branch

$ cd ../
$ cd qa
$ git remote add dev ../dev
$ git remote update
Fetching origin
Fetching dev
From ../dev
 * [new branch]      master      -> dev/master
 * [new branch]      temp-branch -> dev/temp-branch

然后,我在qa上创建一个本地分支

$ git checkout -b temp-branch
Switched to a new branch 'temp-branch'
$ git merge dev/temp-branch
Already up to date.

dev/temp-branch的更新中没有qa/temp-branch的更新。即使代码不同,为什么我得到Already up to date

我做错了吗?如果可以,什么是最好的方法?

谢谢!

1 个答案:

答案 0 :(得分:0)

Git正在“提供帮助”,并且已设置本地temp-branch来跟踪远程dev/temp-branch

根据documentation

git checkout branch
  

如果未找到分支,但确实存在跟踪分支   正好一个具有匹配名称的远程设备(称为远程设备),视为   等同于

git checkout -b branch --track remote/branch

您可以使用以下命令查看所有分支及其上游分支:

git branch -vv

带有示例输出:

master       <commitId> [origin/master] Commit Message
temp-branch  <commitId> [origin/temp-branch] Commit Message
no-upstream  <commitId> Commit Message

如果要防止出现这种情况,则在创建分支时必须使用--no-track标志。

git checkout -b branch --no-track

要修复当前状态,建议您删除并重新创建本地临时分支。

  1. git checkout master //切换到本地主机
  2. git branch -d temp-branch //删除本地分支
  3. git checkout -b temp-branch --no-track //重新创建没有上游分支

此时,您应该处于所需的状态-但可以使用上面列出的命令git branch -vv进行验证