目录html
Markdown版本笔记 | 个人GitHub首页 | 个人博客 | 个人微信 | 个人邮箱 |
---|---|---|---|---|
MyAndroidBlogs | baiqiantao | baiqiantao | bqt20094 | baiqiantao@sina.com |
git help //显示经常使用命令列表,省略了 -i, --info git 指令名 -help //显示某一指令的使用帮助信息【经常使用】 git help -help //显示help指令的使用帮助信息 git help -a //显示全部可用的命令,--all git help config //打开帮助文档:Git/mingw64/share/doc/git-doc/git-config.html git help help //打开帮助文档:Git/mingw64/share/doc/git-doc/git-help.html git help git //打开帮助文档:Git/mingw64/share/doc/git-doc/git.html
简单命令git
git status //显示工做目录和暂存区的状态,使用频率绝对遥遥领先
git clone 仓库地址 //将远程项目克隆到当前目录,默认在当前路径(包含远端的根目录),此命令可配置的参数很是多 git clone 仓库地址 本地路径(文件夹) //不包含远端的根目录(本地目录就是项目根目录),会自动建立本地目录 git clone --progress -v 仓库地址 本地路径 //小乌龟默认的clone命令(其实这些参数都不必配) git init //从新初始化一个现有仓库(会产生一个.git目录),默认在当前路径 git init --bare //新建一个Git代码仓库,做为纯净的仓库(不会产生.git目录)
git add . //能够以空格分隔来一次add多个文件 git commit -m '信息' git commit -am '信息' //至关于【git add .】和【git commit -m】的组合 git commit --amend //修改最近的提交信息,通常先执行【git add .】操做
git push origin 远程分支名 //这种状况下,本地分支名和远程分支名不一致时会push失败 git push origin 本地分支名:远程分支名 //适用于上面那种方式push失败的状况 git push origin HEAD:refs/for/远程分支名
git stash git stash pop
git pull //慎用 git pull --rebase //经常使用
撤销全部commit但保留修改内容github
git reset --soft 前一个提交的commitId
编辑了一个文件,尚未git add加入储存区,这个时候,咱们能够git checkout --file_name,来取消对它的修改。正则表达式
建立/切换分支。即git checkout -b dev。建立分支dev,并切换到dev分支。
等价于:git branch dev git checkput dev。
也能够: git checkout -b dev origin/dev,即建立的本地分支dev是从远程分支origin/dev获得的。
而且你能够看到;Branch 'dev' set up to track remote branch 'dev' from 'origin',即本地分支与远程分支也创建了链接,因此,这个分支能够和远程的分支push和pull的。vim
git branch //查看本地分支,颜色为白色,绿色带星号的为当前所在分支,省略了 -l, --list git branch -v //查看分支时带hash值和最后的提交日志(能够和后面的组合),--verbose git branch -r //查看远端分支,颜色为红色,--remotes git branch -a //列出全部分支,根据颜色可区分是本地分支仍是远端分支,--all git branch -vv //查看本地分支与远程分支的映射关系
git branch 分支名 //基于当前分支建立备份分支(不会checkout),省略了 -c, --copy;-C 强制复制 git branch aaa origin/bbb //基于远程分支建立本地分支(不会checkout),省略了 -t, --track git branch 分支名 commitId //新建一个指向指定commit的分支 git branch -m 原分支名 新分支名 //修改本地分支名,--move;-M 强制更名,即便已存在
git checkout 分支名 //切到另外一本地分支,若是origin分支存在但本地分支不存在,则建立本地同名分支后checkout //若是origin分支和本地分支分支都不存在,或有未commit或未stash的文件,则不执行切换命令并报错 git checkout -f 分支名 //若是有未commit或未stash的文件,则强制还原(重置)后切到另外一本地分支,--force git checkout -b 分支名 //基于当前本地分支建立备份分支,若是已存在则报错,-B 强制建立 git checkout -b aaa origin/bbb //基于远程分支建立本地分支【经常使用】 git checkout - //切换到上一个分支,使用此命令能够在两个分支之间快速切换
git branch -d 分支名 //删除本地分支,该分支必须彻底和它的上游分支merge完成,--delete,delete fully merged branch git branch -D 分支名 //强制删除本地分支,delete branch (even if not merged) git push origin -d 远端分支名 //删除远程分支(服务端中的分支也会被删除) git branch -dr origin/分支名 //删除追踪分支(没有删除远程分支,pull后还会拉下来),--delete --remotes
git branch -u origin/分支名 //修改当前本地分支与指定远程分支的映射关系,上游 --set-upstream-to git branch -u origin/分支名 本地分支名 //修改指定本地分分支与指定远程分支的映射关系 git branch --unset-upstream //撤销本地分支与远程分支的映射关系,默认当前分支 git branch --unset-upstream 本地分支名 //撤销指定分支
git branch --contains commitId //打印包含指定commitId的分支,即此commit之【后】拉的分支 git branch --no-contains commitId git branch --merged commitId //打印合并指定commitId的分支,即此commit之【前】已存在的分支 git branch --no-merged commitId
四种级别:local、global、system微信
local
对应的配置文件为/.git/config
,适用于特定git项目的配置【最高优先级】global
对应的配置文件为C:/Users/当前用户/.gitconfig
,适用于当前登陆用户的配置【中优先级】system
对应的配置文件为/mingw64/etc/gitconfig
,适用于全部用户和全部项目的配置【低优先级】worktree
估计是新增的,不经常使用,也不知道干吗的git config --global user.name 用户名 //更新指定section下指定key的值,默认为更新local下的配置信息 git config --global user.email 邮箱
git config --global alias.s status //设置别名,设置后【git s】和【git status】效果同样 git config --global alias.c 'commit -am 日志信息' //能够用单引号或双引号包起来 git config --global credential.helper store //配置长期存储用户名和密码【untest】 git config remote.origin.push refs/heads/*:refs/for/* //设定提交的分支,默认为local
git config --global -e //进入vim编辑配置信息,默认为编辑local下的配置信息 git config --global --add 类别.键名 对应的值 //在指定section下添加键值对,默认为local git config --global --add bqt.tel 18680536603 //注意:key已存在时不会覆盖,同一个key能够有多个value git config --global --unset user.tel //移除指定section下的键值对,默认为local git config --global --unset-all user.tel //若是同一个key有多个value,必须使用此命令,默认为local git config --global --rename-section aaa bbb //重命名section,默认为local git config --global --remove-section bbb //移除section及其下全部的k-v,默认为local
git config --global -l //参数 -l 为 --list 列表 的简写 git config -l //获取四种级别下全部配置的信息 git config --global --get user.name //查看某一具体key的配置信息,默认为local git config --get-all user.name //获取四种级别下某一具体key全部配置的信息
参考fetch
不带参数的功能说明:.net
git log --abbrev-commit //仅显示SHA-1的前7个字符,而非全部的40个字符(彻底能够用短hash代替长hash) git log --relative-date //使用较短的相对时间显示,例如 two weeks ago git log --oneline //仅在一行显示提交信息,默认仅显示短hash和提交日志 git log --decoreate //显示commit所属的branch和tag信息 git log --graph //显示ASCII图形表示的分支合并历史 git log --stat //在最后列出commit中全部修改过的文件以及其A、D行数,以及全部A、D行数小计 git log --shortstat //和--stat相比,只在最后列出全部A、D行数小计 git log --name-only //在最后显示修改文件清单 git log --name-status //在最后显示修改文件清单,及文件的A、M、D的状态信息 git log -p //以diff的形式输出每一个commit具体修改的内容,内容过于详细,使用较少 git show commitId //以diff的形式输出指定commit具体修改的内容 git blame 文件名 //看某和指定文件的相关历史记录
git log -5 //仅显示最近的几回提交 git log --no-merges //不显示 merge 的提交,默认状况下 git log 会包含 merge commit git log --merges //仅显示 merge 的提交
git log --grep=bai //提交【日志】中包含指定内容的提交,如下均支持正则表达式,添加-i能够在过滤时忽略大小写 git log --author='bqt\|bai' //做者的【user.name或user.email】包含指定内容的提交 git log --committer=bai //提交者的【user.name】包含指定内容的提交 git log -S"bqt" //搜索和指定内容相关的提交,使用-G代替-S可使用正则表达式去匹配
git log --after 2019.08/11-20:22:30 //指定时间以后(不含)的提交,对日期格式的要求很是宽松,能够充分发挥想象力 git log --before "2 weeks ago" //(含),相对时间,"2 week",2.week,2week,用任何符号区分【-_/\*=+#】均可以 git log --after 2019.7.13 --before 2019.8.12 //注意,时间区间为(7.13,8.12],或理解为[7.14,8.13),左开右闭 git log --since 3hour //相似 after,常见的单位还有 second、minute、hour、day、week、year git log --until 3hour //相似 before,一样能够组合为【--since yesterday --until 3hour】
git log 标签名 //相似 before,显示指定标签以前(含)的提交 git log 标签名.. //相似 after,显示指定标签以后(不含)的提交 git log commitId //相似 before,显示截止到指定commitId以前(含)的提交 git log commit1 commit2 //显示commit1与commit2之间的全部提交,而且包括commit1和commit2 git log commit1..commit2 //左开右闭,commit可使用HEAD(最后一次提交)代替,HEAD~n表明倒数第n次提交
git log 分支名或文件名 //只查看跟某些分支或文件(目录)相关的提交,分支名必须彻底匹配,文件名支持通配符* git log -- 文件名 //若是产生混淆,可使用这种方式指定是文件名 git log 分支名 -- //若是产生混淆,可使用这种方式指定是分支名 git log 分支名 -- 文件名 //表明指定分支下的指定文件 git log b..a //分支a中有但分支b中没有的提交,好比可用于列出feature相对于master的不一样 git log b...a //三个点时表示或的意思
git log --pretty="%cn %h - %cd" //自定义输出
git rebase -i commitId 【r】 //修改多个历史提交信息 git rebase -i commitId 【d】 //删除多个历史提交 git rebase -i commitId 【s】 //合并多个历史提交
git diff
git clean -df日志
git remote -v //查看远程库信息(origin、fetch、push),--verbose 详细 git remote show origin
git shortlog //按照做者分类输出提交统计信息 git shortlog -s //对统计信息,按照做者进行排列,仅显示做者和提交数量两项信息 git shortlog -n //对统计信息,按照提交数量进行倒序排列