在我的项目中,我在服务器上有两个分支Goa1和Goa2,所有开发人员都可以访问它。
Goa1由多个团队更新,Goa2适用于我的团队,应始终使用Goa1的更改进行更新。
在我的本地机器上,我有这两个本地分支,我继续从Goa1获得更改。目前,Goa2尚未积极开发,但我希望将来更新。所以我要做的就是如下
$git checkout Goa1
$git pull origin Goa1
Goa1更新了服务器的最新更改
$git checkout Goa2
$git pull origin Goa1
本地分支Goa2更新了Goa1的所有签到
现在我试图通过跟随失败的命令将更新的提交从本地Goa2推送到远程Goa2。
$git push origin Goa2:refs/for/Goa2
Total 0 (delta 0), reused 0 (delta 0)
remote: Processing changes: refs: 1, done
To https://blahblah.com/greatProject
! [remote rejected] Goa2 -> refs/for/Goa2 (no new changes)
error: failed to push some refs to 'https://blahblah.com/greatProject'
我有什么遗失的吗?我的印象是,由于我在本地Goa2中的HEAD更新为新的,上面的命令应该将更改推送到分支。
提前致谢。
答案 0 :(得分:0)
好的,让我们来看看你在这里尝试做的事情:
你的第一步" $ git checkout Goa1"只需确保您在Goa1分支上 你的第二步" $ git pull origin Goa1"仅提取Goa1更新(您可能想要提取所有更新) 你的第三步" $ git checkout Goa2"现在让你将分支改为Goa2 你的第四步" $ git pull origin Goa1"现在从Goa1中提取代码,但它不向该实际分支添加任何内容。因此,当您尝试推送这些更改而不使用" git add"对于那些新的变化,它只是说没有新的变化。你基本上这样做了:
git checkout Goa1
//create some awesome code
//ooops forgot to say "git add ."
//ooops forgot to say "git commit -m 'blah blah some awesome code'"
git push origin Goa1
您想要做的是在TL; DR部分
TL; DR
git checkout Goa1
git pull origin
git checkout Goa2
git merge origin/Goa1