我有两个存储库,我想将更新从一个存储库合并到另一个存储库。我执行了以下操作,并得到了“已经更新”
$ 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
?
我做错了吗?如果可以,什么是最好的方法?
谢谢!
答案 0 :(得分:0)
Git正在“提供帮助”,并且已设置本地temp-branch
来跟踪远程dev/temp-branch
。
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
要修复当前状态,建议您删除并重新创建本地临时分支。
git checkout master
//切换到本地主机git branch -d temp-branch
//删除本地分支git checkout -b temp-branch --no-track
//重新创建没有上游分支此时,您应该处于所需的状态-但可以使用上面列出的命令git branch -vv
进行验证