一般来说每个Git项目中都需要一个“.gitignore”文件,这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中心。实际项目中,有很多文件都不需要版本管理的,比如*.class、.classpath、.project等。.gitignore文件的内容是一些规则,Git会根据这些规则来判断是否将文件添加到版本控制中。 下面我们看看常用的规则:
.gitignore文件中还可以指定要将哪些文件添加到版本库中,唯一的区别就是规则开头多了一个感叹号。
首先,代码库应该有一个、且仅有一个主分支。所有提供给用户使用的正式版本,都在这个主分支上发布。
image.png
Git主分支的名字默认叫做Master。它是自动建立的,版本库初始化以后,默认就是在主分支上进行开发。
主分支只用来发布重大版本,日常开发应该在另一条分支上完成。我们把开发用的分支,叫做Develop。如果想正式对外发布,就在Master分支上,对Develop分支进行“合并”(merge)。
image.png
前面讲到版本库的两条主要分支:Master和Develop。前者用于正式发布,后者用于日常开发。其实,常设分支只需要这两条就够了,不需要其他了。 但是,除了常设分支以外,还有一些临时性分支,用于应对一些特定目的的版本开发。临时性分支主要有三种:
功能(feature)分支 预发布(release)分支 修补bug(fixbug)分支
这三种分支都属于临时性需要,使用完以后,应该删除,使得代码库的常设分支始终只有Master和Develop。
任何开发者都不会对源仓库进行直接的操作,源仓库建立好后,每个开发者都需要做的事情就是把源仓库 “复制”一份到本地,作为自己日常开发的仓库。
git clone url
git ls-remote
所有开发者在开发前都需要基于远程develop分支创建一个本地develop分支。
git branch local_develop origin/develop
切换分支,现在开发者就可以在local_develop分支上开始开发、提交commit,贡献自己的代码。
git checkout local_develop
git status 时刻掌握仓库当前的状态
git add <file>
git commit –a –m “”
当然,你还可以创建自己的特性分支,在特性分支上进行开发工作
git checkout –b feature_branch
git add <file> 添加文件
git commit –a –m “” 提交
git checkout local_develop 切回到local_develop分支
git merge feaure-branch 将特性分支合并到local_develop分支
git branch –d feaure-branch 删除特性分支
无论你通过哪种方式开发,现在本地仓库的local_develop上就是开发者最新的修改,只需要把在本地分支上的修改推送到远程分支,开发者就算贡献了自己的第一次提交。
git push origin local_develop:develop
所有开发者的提交都会在远程develop分支中汇总,当develop中的代码经过不断的测试,逐渐趋于稳定了,可以把develop分支合并到master分支中,同时添加一个新的版本号。 任何人都不应该向master直接进行无意义的合并,正常情况下,master只接受develop的合并。
git checkout develop
git fetch origin/develop
git checkout master
git merge develop
git push origin master:master
在多人开发的情况下,冲突在所难免。如何快速准确的解决冲突是每个开发人员必须掌握的技能。 1、直接编辑冲突文件 冲突产生后,文件系统中冲突了的文件(这里是test.txt)里面的内容会显示为类似下面这样:
image.png
上图中:冲突标记<<<<<<<(7个<)与=======之间的内容是我的修改,=======与>>>>>>>之间的内容是别人的修改。 此时,还没有任何其它垃圾文件产生。 最简单的编辑冲突的办法,就是直接编辑冲突了的文件(test.txt),把冲突标记删掉,把冲突解决正确。 2、利用图形界面工具解决冲突 使用git自带的工具查看差异和合并差异十分不方便, 如果要解决的冲突很多,且比较复杂,图形界面的冲突解决工具就显得很重要了。 执行git mergetool/git difftool用预先配置的Beyond Compare工具解决冲突。git mergetool/git difftool的具体配置方法可在网上搜到很多参考资料,这里不详细讲解。
Beyond Compare
掌握Git基本原理、开发流程及Git命令是每个开发者的必备技能,这里推荐一些资料供大家学习参考。 《Pro Git》 《Git-Book》 《Git版本控制管理》