分支策略
在实际开发中,master分支应该是非常稳定的,也就是仅仅用来发布信版本,平时不在上面干活。干活都应该在dev分支上,每个人都在dev分支上干活,然后每个人又有各自的分支,等到版本发布的在网上发布,团队合作就像
合并的分支的时候可以加上git merge --no-ff -m "merge"
这里ff指的是Fsat Forward合并,使用no-ff参数能够看到曾经做过合并,fastforwrad却看不出。
bug分支
bug分支指的就是在刚好在一个分支上开发,突然领导让你去修改另外一个bug,但是当前工作区的修改的文件还没到提交的层次, 可以使用git stash
将当前工作区隐藏起来,建立另外个bug分支修改bug,
其中需要记住几个重要的命令:
隐藏工作区:git stash
查看隐藏工作区:git stash list
恢复工作区:git stash apply 恢复 git stash drop 删除
git stash pop 恢复+删除。
当然也可以多次stash ,
恢复指定的stash
git stash apply stash@{0}
强制删除分支
丢弃不需要合并的分支
git branch -D <name>
多人协作
当你git clone远程项目的时候的,已经讲远程的master与本地的master建立了连接,查看远程库的信息可以使用命令:
git remote
或者用git remote -v
显示更详细的内容
上面会显示可以抓取和推送的远程库的地址。如果没有推送权限是看不到的。
推送分支
git push origin branchName
推送本地库的内容到远程库对应的远程分支上,dev,master分支都需要往上推送,其他些bug分支就不需要推送到版本库上的
拉取分支
从远程库上colone
git colone git@github.com:toothsmile/gitTEST
这只能将远程版本库的master拉到本地,这时候想要切换远程的分支dev到本地,需要输入命令
git checkout -b dev origin/dev
这样就把远程目录上的分支clone下来了。
接下来就可以通过push命令一直往上面推送了,如果是团队协作的时候,有人提交内容比你早,会推送失败,需要将新版本抓取下来,可以先用git pull把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,再推送。
如果git pull失败的话,原因是没有指定本地dev分支与远程origin/dev分支的链接,根据提示,设置dev和origin/dev的
git branch --set-upstream dev origin/dev
在进行pull,这回git pull成功,但是合并有冲突,需要手动解决,解决的方法和分支管理中的解决冲突完全一样。解决后,提交,再push。
查看远程库信息,使用git remote -v;
小结
本地新建的分支如果不推送到远程,对其他人就是不可见的;
从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
建立本地分支和远程分支的关联,使用git branch –set-upstream branch-name origin/branch-name;
从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。