一、Git简介
Git是由linux的版本管理问题而创建的,是分布式的版本管理控制工具,与svn的集中式的版本管理相对应,也可以说是中心化和去中心的体现。svn要求使用的客户顿必须联网,并可能存在硬盘损坏等的单节点故障问题。
二、git与svn的比较
1、底层操作
修改文件后svn的底层操作,将上一版本的修改的文件的变化进行记录,并标记为新版本的tag。而git会将修改后的文件进行记录(不仅仅是改变的部分),
没有修改的地方则将新版本的引用指向没有改变的文件本身。
2、存在问题比较
1)、 进行pull和push操作的时候svn需要联网
2)、磁盘损坏等单节点故障问题
3)、git为了保证文件的完整性,会为版本文件生成sha1的40位校验码
三、git的操作对应的位置和状态
三、常用命令详解
1、安装好之后的配置
账号:git config -global user.name 'kevin'
邮箱:git config -global user.email '123@1633.com'
ssl:ssh-keygen -t rsa -C '123@1633.com' 命令,会在用户本地文件夹下生成ssl的文件信息,将id_rsa.pub文件中的信息,
copy的远程(如码云的个人setting)的 ssh key 中添加即可。
2、git init 在cd 到某目录下的时候,使用该命令将其建立为仓库
3、git status 会提示你的当前状态和可进行的操作
4、git clone [ url ]
5、remote :git remote add origin 【远端url 】 远端建立的git项目与本地git init之后进行关联
git remote -v 查看远端的集合
6、push 推送到远端 :git push 【-f】 -u origin master 将项目推送到远端(-f为强制推送,可能自己的回退操作后自己的版本比remote的低)
7、git fetch 将本地的snapshot与远端的snapshot同步一次(不会更新代码)
git fetch --help
8、pull :git pull origin master 从远端拉取代码
9、reset :git reset --hard 【40位的sha1的hash版本号】 将文件回退到知道的版本
10、git check :切换新分支 并且会将切换前的修改信息进行撤销操作
11、git tag 版本号 :打tag
12、git merge
13、git rebase
四、git hooks
git的hooks分为客户端和服务端,在客户端git安装目录下hooks 的文件,其中包含提交前的冲突检查等。