git是一个分布式版本控制工具,与CVS、SVN一类的集中式控制工具不同就,分布式版本库不需要服务器端软件,就可以运作版本控制。除此之外,git和其他版本控制工具还有不少的差别,git本身关心文件的整体性是否又改变,但多数的版本控制系统如CVS则再无文件内容的差异;git更像一个文件系统,直接在本机上获取数据而不必链接到主机端,每个开发者都拥有全部开发历史的本地副本。但是如果要与小伙伴们合作开发,还是需要将changes提交到远程的代码仓库(如github、码云、gitlab、coding)。这些changes可以作为新增的开发分支导入,也可以与本地开发分支合并。
快速入门
1
| $ git commit -m "Initial Commit"
|
1
| $ git remote add origin git@github.com:uername/reponsitory.git
|
- 将本地库的内容(master分支)推送到远程库(origin),-u选项可以将远程库与本地库的分支关联起来
1
| $ git push -u origin master
|
分支管理
无论一个项目是否是由多人合作开发,分支管理都有其存在的必要性。一般来说,除却仓库初始化时会自动建立主分支(即master分支),以后的每一次开发或迭代都需要基于自己创建的开发分支,当开发分支上的项目确认没有bug之后,才能够和master分支合并。可以想象,如果在开发分支上的代码出现了难以处理的bug的时候,我们依然可以切换回master分支或者其他分支来获取能正常运行的项目。
查看远程库信息
查看本地分支
查看远程分支
创建本地分支
切换分支
创建新分支并立即切换到新分支
1
| $ git checkout -b [name]
|
推送本地分支
1
| $ git push [远程仓库名] [本地分支名]:[远程分支名]
|
获取远程分支
1
| git fetch [远程仓库名]/[远程分支名]
|
更新本地分支
1
| git pull [远程仓库名] [远程分支名]:[本地分支名]
|
合并分支
删除本地分支
1 2
| git branch -d [name] git branch -D [name]
|
-d选项只能删除已合并的分支
删除远程分支
1
| git push [远程仓库名] :[远程分支名]
|
打标签(打版本号)
显示已有标签
新建标签
查看相应标签的版本信息
删除标签