创建分支
git branch branchname
切换分支
git checkout branchname
创建+切换分支
git checkout -b branchname
查看当前分支
git branch
合并指定分支到当前分支
git merge branchname
删除分支
git branch -d branchname
分支合并图
git log --graph
分支策略
1:master分支只能用来发布新版本,不能在上面干活
2:合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
Bug分支
工作只进行到一半,还没法提交,预计完成还需1天时间。但是,必须在两个小时内修复该bug,怎么办?
保存历史进度
git stash
查看历史进度列表
git stash list
恢复历史进度
git stash apply:恢复后,stash内容并不删除,你需要用git stash drop来删除;
git stash pop:恢复的同时把stash内容也删了
恢复指定的stash
git stash apply stash@{0}
删除未合并的分支
git branch -D branchname
本地分支推送到远程分支
git push origin branchname
如果推送失败,使用git pull拉取最新的提交
master分支是主分支,因此要时刻与远程同步;
dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;
feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。
在本地创建和远程分支对应的分支
git checkout -b branch-name origin/branch-name
注意此处本地分支名要和远程分支名一样
建立本地分支和远程分支的关联
git branch --set-upstream branch-name origin/branch-name
从远程抓取分支
git pull
删除远程分支
git push origin : branchname
上面表示推送一个空的本地分支,相当于删除远程分支的意思
或者使用下面这个命令也是删除一个远程分支