#显示何时出现了分支和合并等信息
git查看状态(status):
gitstatus#查看你的代码在缓存与当前工作目录的状态
gitstatus -s #将结果以简短的形式输出
gitstatus --ignored #显示被忽略的文件
git存储(stash):
gitstash#保存当前的工作进度
gitstash save "message" #保存进度加说明
gitstashlist#显示进度列表
gitstashpop#恢复最新保存的工作进度,并将恢复的工作进度从存储的列表中删除
gitstashapply #恢复最新保存工作进度,但不删除
gitstashdrop#删除一个进度,默认删除最新的
gitstash clear#删除所有
git重置(reset):
gitreset --mixed #同不带任何参数的gitreset一样,重置暂存区,但不改变工作区
gitreset --soft#回退到某个版本,不改变暂存区和工作区(如果还要提交,直接commit即可)
gitreset --hard#彻底回退到某个版本,替换暂存区和工作区,本地的源码也会变为上一个版本的内容
gitreset#将之前用git add命令添加到暂存区的内容撤出暂存区(相当于git add-A 的反向操作)
gitresetHEAD# HEAD效果同上,因为引用重置到HEAD相当与没有重置
gitreset filename #将文件撤出暂存区(相当于git addfilename的反向操作)
gitresetHEAD^ #引用回退一次(工作区不变,暂存区回退)
gitreset --soft HEAD~3 #引用回退三次(工作区不变,暂存区不变)
git撤销(revert):
gitrevertcommit#撤销指定commit
gitrevertHEAD#撤销上一次commit
gitrevert -no-edit HEAD #撤销上一次并直接使用默认注释
gitrevert -nHEAD#撤销上一次但不commit
git合并(merge):
gitmerge
#合并
gitmerge --no-ff
#采用no fastforward的合并方式,这种方式在合并的同时会生成一个新的commit
gitmerge--abort#尽量回退到merge前的状态(可能会失败)
git重新基变(rebase):
gitrebase
#
gitrebase --continue #执行rebase出现冲突解决后,执行该命令会继续应用(apply)余下的补丁
gitrebase --skip #跳过当前提交
gitrebase --abort #终止rebase,分支会回到rebase开始前的状态
git获取/拉(fetch/pull):
gitfetch#从远程获取最新版本到本地,不会自动merge
gitpull#从远程获取最新版本并merge到本地
git pull--rebase #暂存本地变更,合并远程最新改动,合并刚刚暂存的本地变更(不产生无用的merge的同步)
git推(push):
git pushorigin master #将本地分支推送到origin主机的master分支
git push-u origin master # -u指定origin为默认主机,后面就可以不加任何参数使用git push了
git push-f origin # -f强推,在远程主机产生一个"非直进式"的合并(non-fast-forwardmerge)
git push--all origin #将所有本地分支都推送到origin主