Git全解析之用起来先
更新日期:
Git全解析之用起来先
先安装Git环境
下载安装:http://git-scm.com/download/
配置
配置user与email,用来标识用户
也可以直接编辑配置文件,配置文件默认路径在用户目录下的.gitconfig文件中,结构是:
简单了解Git
Git是一个快速的分布式版本控制系统
Git对象模型 SHA
所有用来表示项目历史信息的文件是通过一个40个字符“对象名”来索引的。每一个“对象名”都是对“对象”内容做SHAI哈希计算来的。这个对象名是全局唯一的,不同的对象生成的“对象名”不同。
Git中四种类型的对象:”blob”,”tree”,”commit”和”tag”。每个对象包括三个部分:类型,大小和内容。
- blob用来存储文件数据
- tree有点像一个目录,用来管理一些blob与tree
- commit,一个commit只指向一个tree,用来标记项目某一个特定时间点的状态,即一次提交
- tag,一个tag用来标记一个commit
Git目录与工作目录
git目录是为你的项目存储所有历史和元信息的目录,包括所有对象,这些对象指向不同的分支,每个项目只能有一个Git目录,这个叫’.git’的目录一般在项目的根目录下,
这个目录下的重要文件有:
工作目录就是你的项目源代码目录,即是你签出(checkout)用来编辑的文件,当在不同的分支间切换时,工作目录里的内容会随之替换或删除,所有的操作历史都保存在Git目录中,工作目录是用来临时保存checkout文件的地方。
可以开始使用了
获取仓库
创建仓库,在工作目录下执行
1git init .clone一个仓库
1234#通过http(s)协议git clone https://github.com/git/git.git#通过ssh协议git clone git@github.com:git/git.git
提示:创建和clone后默认的分支是master,默认的repository引用名称origin
正常的工作流程
修改文件,将它们更新的内容添加到索引中
123git add file1 file2 file3#也可以通过git add . 来添加所有变动到暂存区git add .查看当状态
123456789$ git status# On branch master# Changes to be committed:# (use "git reset HEAD <file>..." to unstage)## modified: file1# modified: file2# modified: file3#提交commit
12345678#执行后会进入编辑器进行注释编辑$ git commit#如果注释很短也可以使用$ git commit -m "注释内容"#如果只是修改了文件,没有添加新的文件,可以省略git add$ git commit -am "注释内容"
分支与合并
基本操作命令
|
|
分支冲突
如果执行自动合并没有成功的话,git会在索引和工作树里设置一个特殊的状态, 提示你如何解决合并中出现的冲突。
有冲突(conflicts)的文件会保存在索引中,在commit之前要解决冲突,解决冲突的方式就是编辑冲突文件,重新commit。
撤销合并
|
|
log记录
|
|
示例:
比较差异DIFF
|
|
附录 .gitconfig文件配置参考
|
|
更多配置文件参考: https://github.com/wustrive2008/conf-file
参考
《Git Community Book》
关于捐赠
如何觉得本文章对你有帮助,欢迎通过支付宝捐赠来支持博主