git command cheat sheet

clone:克隆

--non-bare:(默认值)一般的克隆方式

--bare:只克隆.git目录

--mirror:只克隆.git目录,并且还保持与origin的关联,可以fetch

 

commit:将stage提交到repo

git commit:将stage提交到当前分支

git commit -m [message]:为本次提交添加注释

git commit -a:将工作区所有文件加入stage,并且提交到当前分支

git commit [files]:特定文件加入stage,并且提交到当前分支

git commit --amend:替换掉repo当前的版本

 

checkout:(从stage或者repo)复制文件到工作目录,或者切换分支

git checkout [分支名] [文件名]

  指定文件名时,从repo复制文件并替换工作目录中对应的文件

  不指定文件名时,切换当前分支到指定的分支。只存在于老分支的文件会被删除,其他文件忽略

git checkout -b [分支名]:在当前版本创建新的分支

 

reset:回滚,把当前分支指向另一个节点

git reset:无变动,

git reset [新位置]:指向新位置,回滚stage,不回滚工作目录

  --hard:指向新位置,回滚stage和工作目录

  --soft:指向新位置,stage和工作目录无变化

 

merge:合并分支

git merge:当前分支,被合并分支,共同的祖父节点,三者做三方合并,然后提交生成新的节点,并且当前节点指向新节点

  如果被合并分支为当前分支的祖父节点,则无变化

  如果当前分支为被合并分的祖父节点,则生成一个新的提交,当前分支和被合并分支指向新提交的节点(fast-forward)

git merge --no-ff:不采用fast-forward,抛弃分支的历史节点,生成新的提交

 

cherry-pick:复制一次提交,并生成新的提交

git cherry-pick [位置名]

 

rebase:把被衍合分支的每一个节点在当前分支重新提交,并生成新的提交

和 [git commit --amend] 相似

git rebase --onto [分支名] [节点名]:限制衍合深度,只重新提交指定节点名以后的节点

git rebase --interactive:交互式衍合

 

diff:差分文件

git diff:差分工作目录和stage

git diff [分支名]:差分工作目录和指定分支

git diff --cached:差分stage和repo

 

add:工作区->stage

git add

git add .:将所有当前目录下文件及子文件夹都放入stage

 

branch:查看分支

git branch -d [分支名]:删除指定的分支,未合并之前不允许删除

git branch -D [分支名]:强制删除一个分支

 

log:查看历史

git log

 

远程代码库

git remote add [代码库别名] https://url.your_repository:添加远程代码库

git push [远程代码库名] [本地分支名]:推送到远程代码库

git pull [远程代码库名] [本地分支名]:从远程代码库取得代码

gitclone https://url.your_repository:克隆远程代码库

 

设置

git config --global [key] [value]:设置全局变量

 

etc

HEAD标识:当前节点的别名

~:父节点

~[num]:*级父节点

-p:交互模式

 

 

 

posted on 2013-12-10 17:21  yuanpeng  阅读(280)  评论(0编辑  收藏  举报

导航