【问题标题】:Git - Merge a branch of one repo to a branch of another repoGit - 将一个仓库的分支合并到另一个仓库的分支
【发布时间】:2019-03-10 05:19:12
【问题描述】:

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

$ 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

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

谢谢!

【问题讨论】:

  • 也许git log --all --decorate --graph --pretty=oneline --topo-order 可以帮助您(和我们^^)了解您的存储库的状态。

标签: git github merge git-merge


【解决方案1】:

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 // 切换到本地master
  2. git branch -d temp-branch // 移除本地分支
  3. git checkout -b temp-branch --no-track // 重新创建没有上游的分支

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

【讨论】:

  • @moustacheman 抱歉,我不清楚。创建分支时需要使用该选项。我将编辑我的答案
猜你喜欢
  • 2016-06-26
  • 1970-01-01
  • 2023-01-13
  • 2013-01-13
  • 2023-02-08
  • 1970-01-01
  • 2013-09-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多