在进行git push 时遇到的问题:
fatal: The current branch adf has no upstream branch.
查看了一下本地分支和远程分支的关联关系,发现newdev这个本地分支是没有和远程分支关联上的。
dev b57ad4a [origin/dev] a new commit
master acad15e [origin/master: ahead 1, behind 3] still 2 commit
* newdev b57ad4a a new commit
newdev2 b57ad4a [origin/dev] a new commit
remotes/origin/HEAD -> origin/master
remotes/origin/dev b57ad4a a new commit
remotes/origin/master d637b60 1111111
好,下面上货。
git push --set-upstream origin newdev:dev
上面指令的意思是把本地的newdev分支和远程的origin/dev分支进行关联。
dev b57ad4a [origin/dev] a new commit
master acad15e [origin/master: ahead 1, behind 3] still 2 commit
* newdev b57ad4a [origin/dev] a new commit
remotes/origin/HEAD -> origin/master
remotes/origin/dev b57ad4a a new commit
remotes/origin/master d637b60 1111111
结果如上面所示。
在进行git push 的时候,需要确定2个事情。
1、本地分支和远程分支是否有关联
2、本地分支的名称和远程分支的名称是否一致。
如果本地分支和远程分支没有关联,那么最好关联上(可以通过git branch -avv命令来查看),因为这样在后续方面进行查找关联关系,如果多个功能并行开发的话,会产生找不到对应分支的问题。
当本地分支和远程分支有关联关系的时候,这时候要看本地分支和远程分支是否名称相同。
如果名称相同,那么可以直接这样提交 git push 如果名称不同,需要这样提交
git push origin HEAD:dev
其实正常在使用的时候直接git checkout -b newdev2 origin/dev
dev b57ad4a [origin/dev] a new commit
master acad15e [origin/master: ahead 1, behind 3] still 2 commit
newdev b57ad4a [origin/dev] a new commit
* newdev2 b57ad4a [origin/dev] a new commit
remotes/origin/HEAD -> origin/master
remotes/origin/dev b57ad4a a new commit
remotes/origin/master d637b60 1111111
这样就可以迅速的建立一个本地分支和远程分支的关联。