忍者刘米米

Git本地操作

Git安装与简单配置

配置或者修改git用户名
$ git config --global user.name Jack

配置git用户邮箱
$ git config --global user.email XXXXXX@gmail.com

查询git帮助
$ git config --help

添加git用户
$ git config --global --add user.name eoe

删除git用户
$ git config --global --unset user.name eoe

查询git当前用户
$ git config user.name

查询git当前所有用户信息
$ git config --list --global

Git基本的工作流程

1
2
3

创建仓库,有两个方法,如下

  • git init
  • git clone

Mac OSX 下创建两个文件
$ touch a
$ touch b

工作区提交到暂存区
git add a b (只添加这两个文件)
git add -A (添加整个工作区)

查看暂存区
git status

提交到历史记录区(m为所标注的信息)
git commit -m "Initial commit"

删除工作区和暂存区
git rm a

只删除暂存区,不删除工作区
git rm --cached a

将文件a命名为文件c (一系列的组合,在工作区中操作,也在暂存区中修改)
git mv a c

编写.gitignore文件,指出哪些文件是可以不用被git的
.gitignore (省略)

Git本地分支与合并

简单的分支操作

添加test分支
git branch test

切换到test分支
git checkout test

查看在什么分支
git status

查看commit的情况

为查看长命令设置个短标识“lol”
git config --global alias.lol "log --oneline --decorate --graph --all"

查看commit的情况
git lol

查看tag的情况

为某个commit设置个标签
git tag "v0" c8f9030

查看有什么标签
git tag

查看某标签的具体情况
git show v0

有关checkout分支的详述

以checkout进入某commit点,实际上是以该点重新分支fix_v0,
git checkout v0

所以还有后续命令,以该点创建一个分支
git checkout -b fix_v0

有关stash

当checkout切换分支时,要先提交或者stash暂存区的东西,否则会被覆盖
将工作区和暂存区的东西先藏起来,以免切换分支的时候被覆盖
git stash save -a "stash1"

查看有哪些stash
git stash list

将stash的东西还原出来,根据索引号,同时stash list中会删除
git stash pop --index stash@{0}

将stash的东西还原出来,根据索引号,同时stash list依然保存
git stash apply --index stash@{0}

删除某个stash
git stash drop stash@{0}

删除全部stash
git stash clear

合并分支

先切换到master分支下,再合并需要的分支
git master
git merge test_merge

如果是fast-forward,那是不需要修改文件的合并,不重叠的融合

5
6

如果是有冲突的合并,用如下命令取消
git merge --abort

或者是先编辑相冲突的内容,然后再add —> commit,这个commit 是两个merge的commit
git add master.txt
git commit -m "Test merge"

4
9
7
8

查看与对比历史记录

查看某个commit的详情
git show HEAD
git show 16e9e16

如果某个commit是merge commit
git show master^(显示merge中的两个commit中的第一副提交)
git show master^2 (显示merge中的两个commit中的第二副提交)

用show可以显示commit ,tag 的相关信息,查看某标签的具体情况
git show v0

查看历史详情,用键盘上下翻页,q退出
git log (有很多参数)

比较工作区和暂存区的差别
git diff

比较历史记录区和暂存区的差别
git diff --cached

比较哪个单词是差异,用颜色标注出来
git diff --color-words

撤销修改

撤销工作区的修改,用暂存区的内容覆盖工作区的内容
git checkout -- master.txt

用某个commit覆盖工作区和暂存区
git checkout INITIAL_COMMIT -- master.txt

撤销暂存区的修改
git reset master.txt

用某个commit覆盖暂存区,而不是工作区
git reset INITIAL_COMMIT -- master.txt

撤销当前的提交,这也是一个新的提交
git revert HEAD

指向某个commit,并用它还原工作区和暂存区
git reset --hard test

指向某个commit,还原暂存区,不还原工作区
git reset --mixed test

指向某个commit
git reset --soft test

Vim的编辑命令

编辑vim后,按esc键 + :wq 就是保存,不保存就不用加w

Mac command line

$ clear (清楚屏幕上的所有东西)