git合并分支

1.主干合并分支

     Git命令需要在主干下运行,命令执行后,分支的代码同步到了主干。

(1)在主干master上合并分支branch

 (master) git merge branch --squash

   --squash 选项的含义是:不提交、不移动HEAD,因此需要一条额外的commit命令。效果相当于将分支上的多个commit合并成一个,放在当前分支上,原来的commit历史则没有拿过来(前提是分支的commit历史不重要)。

(2)提交合并后的代码

 (master) git commit -m "合并分支代码"

(3)将代码推送到远程仓库

 (master) git push

2.分支合并主干

   Git命令需要在分支下运行,执行后主干的代码同步到了分支。

(1)在分支branch上合并主干master

 (branch) git merge master --squash

(2)提交合并后的代码

 (branch) git commit -m "合并主干代码"

(3)将代码推送到远程仓库

 (branch) git push

Git master branch has no upstream branch的解决

设置gitthub仓库地址:

git remote add origin https://github.com/...

解决办法其实就是确定这两个值,方法有两种:

    第一种:git push --set-upstream origin master。其中的origin是你在clone远程代码时,git为你创建的指向这个远程代码库的标签,它指向repository。为了能清楚了解你要指向的repository,可以用命令git remote -v进行查看。master是你远程的branch,可以用git branch -a查看所有分支,远程分支是红色的部分。然后确定好这两个值后,将值换掉即可。
    另一种方法是:git push -u origin master。同样根据自己的需要,替换origin和master。

两个命令的区别是第一条命令是要保证你的远程分支存在,如果不存在,也就无法进行关联。而第二条指令即使远程没有你要关联的分支,它也会自动创建一个出来,以实现关联。