Git 入门
写在前面:本文所有系统为 OS X
环境配置
首先,在 terminal 终端检查是否安装 Git : git --version
,安装成功的提示如下:
然后,设置git的两个基本信息:用户名和邮箱
#设置用户名和邮箱
git config --global user.name "xxx(用户名)"
git config --global user.email "xxxx(邮箱地址)"
设置完成后,可以使用atom 编辑器打开 atom ~/Users/你的用户名/.gitconfig
,查看效果.
基本操作流程和常用命令
新建一个文件夹: mkdir Demo
打开新建的文件夹: cd Demo
初始化git工厂: git init
新建文件: touch a.txt
向该文件中添加内容: echo vvvv > a.txt
将该文件添加给git: git add a.txt
将该文件提交到git工厂: git commit -m "first"
(其中-m 代表 message,后面引号内容是对此次提交的描述)
通过git日志,查看提交结果: git log
git 版本控制原理(四种文件状态)
git的文件有四种状态
- Untracked
- Unmodified
- Modified
- Staged
可以使用 git status
查看当前文件的状态
以文件a.txt
为例,说明四种状态:
Untracked : 文件a.tx
刚被创建,未执行 git add a.txt
之前.
Staged: 执行 git add a.txt
之后
Unmodified : 执行 git commi -m "first"
之后
Modified: 已经完成上述操作后, 再对 a.txt 做更改, a.txt 文件状态变为 modified
Unmodified 状态转换为 Untracked 状态: git rm --cached a.txt
注意: 只有 Staged 状态才能 commit到版本库中,如果是 Modified 状态,需要先通过add将其设置为 Staged 状态
git 四个常用组件
- Tag
- Commit
- Tree
- Blob
git 的每个组件是根据文件内容生成hash的二进制,其中hash的前两位为组件的文件夹名,剩余位数为文件名.
Blob : 在文件状态变为 Staged 时候生成的
Tree : git commit -m "first"
之后, 马上创建一个 tree 组件,把需要的 blob 组件添加进去
Commit : tree 组件封装到 commit 组件中,完成本次提交
git 分支
创建分支: git branch 分支名
切换分支: git checkout 分支名
创建并切换分支: git checkout -b 分支名
合并分支: git merge 要合并的分支
删除分支: git branch -d 分支名
在a分支新建一个分支: git checkout -b 新分支 指定分支a
附加
在 .gitconfig 中进行以下配置,可以简写输入的命令:
[alias]
lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
co = commit
st = status -s
git status -s
: 以精简的方式显示文件状态, s代表short
git log --pretty=oneline
: 格式良好的输出日志
参考资料: