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基本的工作流程
创建仓库,有两个方法,如下
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"
查看有哪些stashgit stash list
将stash的东西还原出来,根据索引号,同时stash list中会删除git stash pop --index stash@{0}
将stash的东西还原出来,根据索引号,同时stash list依然保存git stash apply --index stash@{0}
删除某个stashgit stash drop stash@{0}
删除全部stashgit stash clear
合并分支
先切换到master分支下,再合并需要的分支git master
git merge test_merge
如果是fast-forward,那是不需要修改文件的合并,不重叠的融合
如果是有冲突的合并,用如下命令取消git merge --abort
或者是先编辑相冲突的内容,然后再add —> commit,这个commit 是两个merge的commitgit add master.txt
git commit -m "Test merge"
查看与对比历史记录
查看某个commit的详情git show HEAD
git show 16e9e16
如果某个commit是merge commitgit 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
指向某个commitgit reset --soft test
Vim的编辑命令
编辑vim后,按esc键 + :wq 就是保存,不保存就不用加w
Mac command line
$ clear
(清楚屏幕上的所有东西)