Git常用命令
master: 默认开发分支
origin:默认远程本本库
Head:默认开发分支
Head^:Head的父提交
- 创建版本库
- git clone <url> #克隆远程版本库
- git init #初始化本地版本库
- 修改和提交
- git status #查看状态
- git diff #查看变更内容
- git add #跟踪所有改动过的文件
- git add <file> #跟踪指定文件
- git mv <old> <\new> #文件改名
- git rm <file> #删除文件
- git rm --cached <file> #停止跟踪文件但不删除
- git commit -m ‘commit message’ #提交所有更新过的文件
- git commit --amend #修改最后一次提交
- 查看提交历史
- git log #查看提交历史
- git log -p <file> #查看指定文件的提交历史
- git blame <file> #以列表方式查看指定文件的提交历史
-
撤销
- git reset --hard HEAD #撤销工作目录中所有未提交文件的修改内容
- git checkout HEAD <file> #撤销指定的未提交文件的修改内容
- git revert <commit> #撤销指定的提交
-
分支与标签
- git branch #显示所有本地分支
- git checkout <branch/tag> #切换到指定分支或标签
- git branch <new-branch> #创建新分支
- git branch -d <branch> #删除本地分支
- git tag #列出所有本地标签
- git tag <tagname> #基于最新提交创建标签
- git tag -d <tagname> #删除标签
- 合并于衍合
- git merge <branch> #合并指定分支到当前分支
- git rebase <branch> #衍合指定分支到当前分支
- 远程操作
- git remote -v #查看远程版本信息
- git remote show <remote> #查看指定远程版本信息
- git remote add <remote> <url> #添加远程版本
- git fetch <remote> #从远程库获取代码
- git pull <remote> <branch> #下载代码及快速合并
- git push <remote> <branch> #上传代码及快速合并
- git push <remote> :<branch/tag-name> #删除远程分支或标签
- git push --tags #上传所有标签
- 查用的git命令
- git add #添加至暂存区
- git add-interactive #交互式添加
- git apply #应用补丁
- git am #应用邮件格式补丁
- git annotate #同义词,等同于git blame
- git archive #文档归档打包
- git bisect #二分查找
- git blame #文件逐行追溯
- git branch #分支管理
- git cat-file #版本库对象研究工具
- git checkout #检出到工作区、切换或创建分支
- git cherry-pick #提交拣选
- git citool #图形化提交,相当于git gui命令
- git clean #清除工作区未跟踪文件
- git clone #克隆版本库
- git commit #提交
- git config #查询和修改配置
- git describe #通过里程碑直观地显示提交ID
- git diff #差异比较
- git difftool #调用图形化差异比较工具
- git fetch #获取远程版本库的提交
- git format-patch #创建邮件格式的补丁文件。参见git am 命令
- git grep #文件内容搜索定位工具
- git gui #基于Tcl/Tk的图形化工具,侧重提交等操作
- git help #帮助
- git init #版本库初始化
- git init-db* #同义词,等同于git init
- git log #显示提交日志
- git merge #分支合并
- git mergetool #图形化冲突解决
- git mv #重命名
- git pull #拉回远程版本库的提交
- git push #推送至远程版本库
- git rebase #分支变基
- git rebase-interactive #交互式分支变基
- git reflog #分支等引用变更记录管理
- git remote #远程版本库管理
- git repo-config* #同义词,等同于 git config
- git reset #重置改变分支“游标”指向
- git rev-parse #将各种引用表示法转换为哈希值等
- git revert #反转提交
- git rm #删除文件
- git show #显示各种类型的对象
- git stage* #同义词,等同于git add
- git stash #保存和恢复进度
- git status #显示工作区文件状态
- git tag #里程碑管理
- 对象库操作相关命令
- git-commit-tree #从树对象创建提交
- git hash-object #从标准输入或文件计算哈希值或创建对象
- git ls-files #显示工作区或暂存区文件
- git ls-tree #显示树对象包含的文件
- git mktag #读取标准输入创建一个里程碑对象
- git mktree #读取标准输入创建一个树对象
- git read-tree #读取树对象到暂存区
- git update-index #工作区内容注册到暂存区及暂存区管理
- git unpack-file #创建临时文件包含指定blob的内容
- git write-tree #从暂存区创建一个树对象
- 引用操作相关命令
- git check-ref-format #检查引用名称是否符合规范
- git for-each-ref #引用迭代器,用于shell编程
- git ls-remote #显示远程版本库的引用
- git name-rev #将提交ID显示为友好名称
- git peek-remote* #过时命令,请使用git ls-remote
- git rev-list #显示版本范围
- git show-branch #显示分支列表及拓扑关系
- git show-ref #显示本地引用
- git symbolic-ref #显示或者设置符号引用
- git update-ref #更新引用的指向
- git verify-tag #校验GPG签名的Tag
- 版本库管理相关命令
- git count-objects #显示松散对象的数量和磁盘占用
- git filter-branch #版本库重构
- git fsck #对象库完整性检查
- git fsck-object* #同义词,等同于git fsck
- git gc #版本库存储优化
- git index-pack #从打包文件创建对应的索引文件
- git lost-found* #过时,请使用git fsck -lost-found
- git pack-objects #从标准输入读入对象ID,打包到文件
- git pack-redundant #查找多余的pack文件
- git pack-refs #将引用打包到.git/packed-refs文件中
- git prune #从对象库删除过期对象
- git prune-packed #将已经打包的松散对象删除
- git relink #为本地版本库中相同的对象建立硬连接
- git repack #将版本库未打包的松散对象打包
- git show-index #读取包的索引文件,显示打包文件中的内容
- git unpack-objects #从打包文件释放文件
- git verify-pack #校验对象库打包文件
- 数据传输相关命令
- git count-objects #显示松散对象的数量和磁盘占用
- git filter-branch #版本库重构
- git fsck #对象库完整性检查
- git fsck-object* #同义词,等同于git fsck
- git gc #版本库存储优化
- git index-pack #从打包文件创建对应的索引文件
- git lost-found* #过时,请使用git fsck -lost-found
- git pack-objects #从标准输入读入对象ID,打包到文件
- git pack-redundant #查找多余的pack文件
- git pack-refs #将引用打包到.git/packed-refs文件中
- git prune #从对象库删除过期对象
- git prune-packed #将已经打包的松散对象删除
- git relink #为本地版本库中相同的对象建立硬连接
- git repack #将版本库未打包的松散对象打包
- git show-index #读取包的索引文件,显示打包文件中的内容
- git unpack-objects #从打包文件释放文件
- git verify-pack #校验对象库打包文件
- 邮件相关命令
- git imap-send #将补丁通过IMAP发送
- git mailinfo #从邮件导出提交说明和补丁
- git mailsplit #将mbox或Maildir格式邮箱中邮件逐一提取为文件
- git request-pull #创建包含提交间差异和执行PULL操作地址的信息
- git send-email #发送邮件
- 协议相关命令
- git daemon #实现Git协议
- git http-backend #实现HTTP协议的CGI程序,支持智能HTTP协议
- git instaweb #即时启动浏览器通过gitweb浏览当前版本库
- git shell #受限制的shell,提供仅执行Git命令的SSH访问
- git update-server-info #更新哑协议需要的辅助文件
- git http-fetch #通过HTTP协议获取版本库
- git http-push #通过HTTP/DAV协议推送
- git remote-ext #由Git命令调用,通过外部命令提供扩展协议支持
- git remote-fd #由Git命令调用,使用文件描述符作为协议接口
- git remote-ftp #由Git命令调用,提供对FTP协议的支持
- git remote-ftps #由Git命令调用,提供对FTPS协议的支持
- git remote-http #由Git命令调用,提供对HTTP协议的支持
- git remote-https #由Git命令调用,提供对HTTPS协议的支持
- git remote-testgit #协议扩展示例脚本
- 版本转换和交互相关命令
- git archimport #导入Arch版本库到Git
- git bundle #提交打包和解包,以便在不同版本库间传递
- git cvsexportcommit #将Git的一个提交作为一个CVS检出
- git cvsimport #导入CVS版本库到Git。或者使用cvs2git
- git cvsserver #Git的CVS协议模拟器,可供CVS命令访问Git版本库
- git fast-export #将提交导出为git-fast-import格式
- git fast-import #其他版本库迁移至Git的通用工具
- git svn #Git作为前端操作Subversion
- 合成相关的辅助命令
- git merge-base #供其他脚本调用,找到两个或多个提交最近的共同祖先
- git merge-file #针对文件的两个不同版本执行三向文件合并
- git merge-index #对index中的冲突文件调用指定的冲突解决工具
- git merge-octopus #合并两个以上分支。参见git merge 的octopus合并策略
- git merge-one-file #由git merge-index调用的标准辅助程序
- git merge-ours #合并使用本地版本,抛弃他人版本。参见git merge的ours合并策略
- git merge-recursive #针对两个分支的三向合并。参见git merge的recursive合并策略
- git merge-resolve #针对两个分支的三向合并。参见git merge的resolve合并策略
- git merge-subtree #子树合并。参见git merge的subtree合并策略
- git merge-tree #显示三向合并结果,不改变暂存区
- git fmt-merge-msg #供执行合并操作的脚本调用,用于创建一个合并提交说明
- git rerere #重用所记录的冲突解决方案
- 杂项
- git bisect-helper #由git bisect命令调用,确认二分查找进度
- git check-attr #显示某个文件是否设置了某个属性
- git checkout-index #从暂存区拷贝文件至工作区
- git cherry #查找没有合并到上游的提交
- git diff-files #比较暂存区和工作区,相当于git diff -raw
- git diff-index #比较暂存区和版本库,相当于git diff -cached -raw
- git diff-tree #比较两个树对象,相当于git diff -raw A B
- git difftool-helper #由git difftool命令调用,默认要使用的差异比较工具
- git get-tar-commit-id #从git archive创建的tar包中提取提交ID
- git gui-askpass #命令git gui的获取用户口令输入界面
- git notes #提交评论管理
- git patch-id #补丁过滤行号和空白字符后生成补丁唯一的ID
- git quiltimport #将Quilt补丁列表应用到当前分支
- git replace #提交替换
- git shortlog #对git log的汇总输出,适合于产品发布说明
- git stripspace #删除空行,供其他脚本调用
- git submodule #子模组管理
- git tar-tree #过时命令,请使用git archive
- git var #显示Git环境变量
- git web-browse #启动浏览器以查看目录或文件
- git whatchanged #显示提交历史及每次提交的改动
- git-mergetool-lib #包含于其他脚本,提供合并/差异比较工具的选择和执行
- git-parse-remote #包含于其他脚本中,提供操作远程版本库的函数
- git-sh-setup #包含于其他脚本中,提供shell编程的函数库