git是团队开发必不可少的工具。
在一个仓库中,默认的是master分支。我们可能需要一些其他分支来做一些测试/开发的操作。
1.如何创建分支
查看本地分支: git branch
查看所有分支:git branch -a
在本地新建一个分支: git branch newBranch
切换到你的新分支: git checkout newBranch
将新分支发布在github/gitee上: git push origin newBranch
在本地删除一个分支: git branch -d newBranch
在github远程端删除一个分支: git push origin :newBranch
(分支名前的冒号代表删除)
切换到本地新建的分支,也把新建的分支提交了,修改了东西然后push,会出现提示:
fatal: The current branch test has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin test
意思是你本地的分支还没和github/gitee的分支做关联,按提示运行代码:
git push --set-upstream origin test
Everything up-to-date
Branch 'test' set up to track remote branch 'test' from 'origin'.
这样就可以push啦~
注意:你在哪个分支创建新的分支,新的分支的代码蓝本和你当前所在的分支一致。
eg:当前有两个分支:master,test,你切换到了test分支,然后执行了git branch test02
,此时新的分支test02的代码和test分支的代码一致。
那么,有一天分支多了,我怎么才能知道一个分支是由哪个分支创建的呢?
git reflog show branchname
eg:git reflog show test02
49ada97 (HEAD -> test02, origin/test, test) test02@{0}: branch: Created from test
test02分支是由test分支创建的
2.合并分支
现有test分支,我新建一个分支test02,在test02改完bug以后提交了(push),想要合并到test里:
1)无冲突
切换到test :git checkout test
合并:git merge test02
2)有冲突
假设我们在test和test02都修改了同一处,然后合并到master,那就会产生冲突
切换到master:git checkout master
合并test:git merge test
再合并test02:git merge test02
此时就会提示你去解决冲突
<<<<<<<<<<<<<<<
===============
git 自动生成的这些分隔符要记得手动删掉