git之独孤九剑

git常用命令10来个,不同场景的参数却千差万别。

gitk

打开git图形化界面

gitk

git 暂存命令

git add

添加一个快照(git index file),被放到暂存区域。

git stash

将更改暂存到栈上,留出干净的空间以便执行其他git命令。

git stash pop

把暂存内容弹出到工作空间。

git statsh show

显示栈上的暂存列表,以便有选择的pop,详见 Git存储

git提交命令

git commit

将快照写入git仓库。

git commit -a

此选项省去git add的操作,对新增文件无效。

git commit -m

选项用于添加注释。如果有日志提取需要(如:发送邮件),需注意注释格式。

第一行:主题,所以应控制长度,第二行:空行,第三行:具体内容描述。

git差异比较

git diff

列出工作目录树和提交之间的差异,在执行git add命令之前,通过git diff检测变更差异。

git diff -cached

在执行git add后通过此选项检测变更差异。

work tree工作目录树,所有的改动最初都在这里,此时还没有进入index file。

git状态命令

git status

查看当前版本库的整体情况,包含新增、修改、删除、未提交、未跟踪状态的文件信息。git status能检测到未执行git commit之前发生的变更。

git提交记录查询

列出提交日志列表,常用于查看修改记录。

git log

查看指定的git log,logid为一串随机数,截取部分即可识别。

git show <logid>

列出各版本间代码的区别

git log -p

给复杂的名称取别名

git tag <alias> <orig>  

查找git日志中包含的指定信息

git grep <keyword>

指定日志文件区间

git log <logid> <logid>

git log -since="1 weeks ago"

查看多个日志最佳方式是使用gitk

gitk -since="1 weeks ago"

q退出日志浏览。

git分支命令

查看、新建、删除分支

列出所有分支,“*”标记为当前分支。

git branch 

创建一个名为dev的分支

git branch dev

查看每个分支的最后一次提交信息。

git branch -v

查看本地分支与远程仓库分支的对应关系

git branch -vv

删除已经合并的分支。

git brahch -d

强制删除分支。

git brahch -D

git切换命令

git checkout 

切换分支

git checkout  dev

切换到dev分支。

git checkout <文件路径>

删除/覆盖指定的未经提交的修改,未经提交的文件路径可以通过git status查得。

git merge合并命令

git merge把指定的分支合并到当前分支上。

例如:当前为master分支,执行完git merge dev,dev上的变更会合并到master上。git merge要特别留意conflict字样。

git冲突解决

<<<<<<< yours:sample.txt
=======
>>>>>>> theirs:sample.txt

git冲突片段由上面三部分组成,<<<<<<<与=======之间的内容为当前分支的修改,=======与>>>>>>> 之间的内容为合并分支的修改。

git更新命令

git pull获取远程仓库上分支的diff信息,并把远程分支的修改更新到本地分支上。

git pull包含两条git命令:先执行git fetch从远程仓库获取最新的变更内容,然后,通过git merge对获取的内容进行合并。

git元数据更新命令

git fetch

指定远程分支和本地分支进行有选择的更新。

git fetch repo  <remote branch>:<local branch>