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
A~n:从commit A向前数第n个commit
输入sha1的前几位
A .. B:在B中但不在A中的commit;用–not更好。
A … B:(A-B)U(B-A)
指针是依靠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)
相关文章推荐
- datasheet 使用的正确姿势
- yii2 邮件发送
- Linux source code Makefile分析
- Exel下载
- zookeeper python接口
- layout_margin & padding
- ijkPlayer的编译
- linux系统中关于中断、异常、系统调用、陷阱等概念的解析
- String StringBuilder StringBuffer 对比 总结得非常好
- ViewPager+Fragment,Fragment会预加载的问题
- 45.Android 第三方开源库收集整理(转)
- 算法 - 递归 - 汉诺塔问题
- oc-26-动态类型检测
- dijkstra 求单源最短路径 —— hdu 1874
- ORB+暴力匹配
- 对MVC的理解
- JVM中的flag设置
- Hadoop 使用combiner提升性能
- 判断一棵树是不是另外一棵树的子树(dfs)
- Spark RDD(DataFrame) 写入到HIVE的代码实现