Git 原理简单说明和常用指令说明
先简单描述一下git工作流程
- 第一区域(Working tree),你的本地专案目录。
- 第二区域(Staging area),通过指令
$ git add
把第一区域修改过的文件追加到第二区域。 - 第三区域(git directory[repository]),输入
$ git commit
才会被保存到第三区域。
可以通过输入$ git checkout 文件名
还原之前修改文件(重第三区域退回第一区域 )。
Staging area设计的目的:本地修改太乱,只commit想commit的文件。
用git指令更改git设定
$ git config --global user.name ""
$ git config --global user.email ""
$ git config --global color.ui true
引入git指令颜色- 也可以输入
vim ~/.gitconfig
直接修改设定进入专案引入git
$ git init
专案的git初始化$ git state
查看文件更改,未被追踪的文件状态为untracked
$ git add
追加修改文件 状态为to be committed
$ git diff --staged
传入staged arugment查看 staging area区域内的不同。$ git diff
只针对没有被装入staging area的文件,不展示新增的空文件,只不同文件新增的代码。移除Staging area状态的文件
$ git reset HEAD 文件名
$ git checkout 文件名
放弃本次文件的修改 新建文件无法使用此命令来还原删除文件和文件重命名
$ git rm 文件名
删除的文件会直接进入staging area的状态。$ rm 文件名
,但是需要手动存入staging area。$ git mv 旧文件名 新文件名
$ mv 旧文件名 新文件名
(后面两个命令的说明同上)还原commit
- 还原上一个commit
$ git revert HEAD
- 还原特别的commit
$ git revert 7981d5f2ef44<SHAI>
(HEAD在这里就是上一个意思,上两个HEAD^。这里注意了如果使用zsh的话,需要输入转义字符HEAD\^)Git Tag
$ git tag foo
针对上一个commit打标签,一个commit可以打多个标签,但一个标签只能属于一个commit。$ git tag -d foo
删除标签。- 对特定的commit打标签,
$ git tag specific <SHAI>
- tag也可以加入讯息
$ git tag title -m "this is the message"
删除掉没有被git add过的文件
$ git clean -n
列出打算删除的文件$ git clean -f
真的删除$ git clean -x
连gitignore里面列的档案也删除