没错,Git非常强大!
但是,如果我们的分支不加以规范管理,也有可能适得其反!
1、不要有太多的树杈(子分支)
2、要有一个“稳定分支”,即master分支不要轻意被修改
3、要有一个开发分支(developer),保证master分支的稳定性
4、所有的功能分支(feature)从developer创建
5、所有功能开发完成后新建发布分支(release)
12 冲突解决
假如两个开发同时改到同一文件的同一段内容会发生什么事情呢?
这时就会就会产生冲突了,当冲突产生后,需要开发者进行协商确认冲突的原因,然后将冲突代码删除重新提交就可以了。
23 Git高级
熟悉掌握以上操作,基本上是可以满足日常开的需要的,但是在解决一些特殊问题时,就又需要我们能够掌握更多的命令。
3 gitignore忽略文件
在项目根目录下创建一个.gitignore文件,可以将不希望提交的罗列在这个文件里,如项目的配置文件、node_modules等
https://github.com/github/gitignore
4比较差异
当内容被修改,我们无法确定修改哪些内容时,可以通过git diff来进行差异比较。
git difftool 比较的是工作区和暂存的差异
git difftool “SHA”比较与特定提交的差异
git difftool “SHA”“SHA”比较某两次提交的差异
git difftool 分支名称 比较与某个分支的差异
5 回滚(撤销)操作
HEAD 默认指向当前分支的“末端”,即最后的一次提交,但是我们通过gitreset 可以改变HEAD的指向。
6 看情况解释(稍微复杂一些,理解就好)
1、git reset
--hard 工作区会变、历史(HEAD)会变, 暂存区也变
--soft 只会变历史(HEAD)
--mixed(默认是这个选项)历史(HEAD)会变、暂存区也变,工作区不变
2、git checkout
git checkout SHA-- "某个文件",代表只是从SHA这个版中取出特定的文件,
和git reset 是有区别的,reset重写了历史,checkout则没有。
7 更新仓库
在项目开发过程中,经常性的会遇到远程(共享)仓库和本地仓库不一致,我们可以通过git fetch 命令来更新本地仓库,使本地仓库和远程(共享)仓库保持一致。
git fetch “远程主机”
或者
git fetch “远程主机” “分支名称”
我们要注意的是,利用git fetch 获取的更新会保存在本地仓库中,但是并没有体现到我们的工作目录中,需要我们再次利用git merge来将对应的分支合并(融合)到特定分支。如下
git pull origin 某个分支, 上操作相当于下面两步
git fetch
git mergeorigin/某个分支
问题:如何查看远程主机上总共有多少个分支?
git branch -a 便可以查看所有(本地+远程仓库)分支了
84 其它
删除远程分支git push origin --delete 分支名称
删除远程分支git push origin :分支名称