Git入门必知必会

Git入门必知必会的命令列表。

gitk

git图形化界面

gitk

暂存命令

git add

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

git stash

将更改暂保存到栈上。

git stash pop

弹出暂存内容。

git statsh show

显示暂存列表,详见 Git存储

提交命令

git commit

将快照写入git仓库。

git commit -a

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

git commit -m

添加注释。若有日志提取需求(如:发送邮件),需注意格式:

第一行:主题,所以应控制长度。

第二行:空行。

第三行:具体内容描述。

差异比较

git diff

列出工作目录和提交间的差异,执行git add前,使用git diff检测变更差异。

git diff -cached

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

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

查看状态

git status

查看分支文件状态,包含新增、修改、删除、未提交、未跟踪状态的文件信息。

git status检测未执行git commit前发生的变更。

提交记录查询

列出提交日志,查看修改记录。

git log

查看指定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 branch 

创建一个名为dev分支

git branch dev

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

git branch -v

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

git branch -vv

删除分支:

git brahch -d

强制删除分支:

git brahch -D

切换命令

git checkout 

切换分支。

git checkout  dev

切换到dev分支。

git checkout <文件路径>

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

合并命令

git merge将指定分支合并到当前分支上。如:当前为master分支,执行完git merge dev,dev分支变更记录会合并到master。git merge需留意conflict字样。

冲突解决

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

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

更新命令

获取远程仓库上分支的diff信息,并将远程分支的修改更新到本地分支“

git pull

git pull包含两条命令:

1、先执行git fetch从远程仓库获取最新变更记录。

2、git merge对获取内容执行合并。

元数据更新命令

git fetch

指定远程分支和本地分支执行更新。

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