您的位置:首页 > 其它

Git使用总结

2016-03-23 17:06 218 查看
Git实际上是一个状态机,每个状态都是一个commit。一个commit里包含着文件的内容、关系,commit间的关系等。分支是一个指向一系列commit组成链表的尾节点的指针。而remote和local是由git维护的两个可以同步结构的状态机,可以由这个方式来理解git。

指针是依靠sha1值来指向不同分支的。

文件状态转换:



各种命令

init:初始化,可以传template_dir

add:准备一个状态,但不加入状态机中

-n,查看新文件

-i,交互模式:

status: git status

update:git add

revert:git checkout –

add untracked:git add

patch:分块add,不太会用啊。。。

-e,编辑已有修改

clone:

status:

diff:可以看commit、文件夹、stage等的修改点

commit:将准备好的状态加入状态机中

rm:删除文件和追踪,–cached删除追踪

mv:= mv A B + git add B + git rm A

log:

reset:

checkout:

remote:

push:

fetch:

pull:

rebase:结果与merge一样,但是是把A中,A B共同祖先之后的状态放到B的Head之后。最终的rebase节点入度为1。

tag:

config:

–global alias.xx foo:设置别名

branch:

merge:只是变换指针时,叫fast forward。否则merge会增加一个新的merge节点,用–squash避免。merge节点是一个入度为2的节点。

stash:独立于状态机的一系列状态,没有图信息但是文件信息是全的。

list:

apply:应用某个stash

ignore

- glob匹配

commit间导航:

A~n:从commit A向前数第n个commit

输入sha1的前几位

A .. B:在B中但不在A中的commit;用–not更好。

A … B:(A-B)U(B-A)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: