Git命令

Git

命令说明
master默认开发分支
origin默认远程版本库
Head默认开发分支
Head^Head的父提交

创建版本库

命令说明
git clone 克隆远程版本库
git init初始化本地版本库

修改和提交

命令说明
git status查看状态
git diff查看变更内容
git add .跟踪所有改动过的文件
git add 跟踪指定的文件
git mv 文件改名
git rm 删除文件
git rm --cached 停止跟踪文件但不删除
git commit -m “commit message”提交所有更新过的文件
git commit --amend修改最后一次提交

查看提交历史

命令说明
git log查看提交历史
git log -p 查看指定文件的提交历史
git blame 以列表方式查看指定文件的提交历史

撤销

命令说明
git reset --hard HEAD撤销工作目录中所有未提交文件的修改内容
git checkout HEAD 撤销指定的未提交文件的修改内容
git revert 撤销指定的提交

分支与标签

命令说明
git branch显示所有本地分支
git checkout <branch/tag>切换到指定分支或标签
git branch 创建新分支
git branch -d 删除本地分支
git tag列出所有本地标签
git tag 基于最新提交创建标签
git tag -d删除标签

合并和衍合

命令说明
git merge 合并指定文件到当前分支
git rebase 衍合指定分支到当前分支

远程操作

命令说明
git remote -v查看远程版本库信息
git remote show 查看指定远程版本库信息
git remote add 添加远程版本库
git fetch 从远程库获取代码
git pull 下载代码及快速合并
git push 上传代码及快速合并
git push :<branch/tag-name>删除远程分支或标签
git push --tags上传所有标签

远程仓库相关

命令说明
git clone 检出仓库
git remote -v查看远程仓库
git remote add 添加远程残酷
git remote rm 删除远程仓库
git remote set-url --push 修改远程仓库
git pull 拉取远程仓库
git push 推送远程仓库
git push origin test:master提交本地test分支作为远程的master分支
git push origin test提交本地test分支作为远程的test分支

分支操作相关

命令说明
git branch查看本地分支
git branch -r查看远程分支
git branch -vv查看当前的本地分支与远程分支的关联关系
git branch 创建本地分支,但是新分支创建后不会自动切换为当前分支
git branch --set-upstream-to=origin/xxx把本地分支与远程origin的分支进行关联处理(通过 --set-upstream-to 命令)
git checkout 切换分支
git checkout -b 创建新分支并立即切换到新分支
git -d 删除分支,注意 -d选项只能删除已经参与了合并的分支,对于没有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项
git merge 合并分支,将名称为的分支与当前分支合并
git push origin 创建远程分支(本地分支push到远程)
git push origin :heads/ 或 git push origin :删除远程分支
git git symbolick -ref HEAD refs/head/ rm .git/index git clean -fdx创建空的分支,注意 执行命令之前记得先提交当前分支的修改,否则会被强制删除干净

版本操作相关

命令说明
git tag查看版本
git tag 创建版本
git tag -d 删除版本
git tag -r查看原创版本
git push origin 创建远程版本(本地版本push到远程)
git push origin :refs/tags/删除远程版本
git pull origin --tags合并远程仓库的tag到本地
git push origin --tags上传本地tag到远程仓库
git tag -a -m “message”创建带注释的tag

子模块操作相关

命令说明
git submodule add 添加子模块,如:$git submodule add git://github.com/soberh/ui-libs.git src/main/webapp/ui-libs
git初始化子模块
git更新子模块
git rm --cached 删除子模块,共五步,1、git rm --cached 2、编辑“.gitmodules”文件,将子模块的相关配置节点删除掉3、编辑“.git/config”文件,将自摸的相关配置节点删除掉4、手动删除子模块残留的目录5、忽略一些文件、文件夹不提交:在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可

对象库操作相关

命令说明
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 neme-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-objects*同义词,等同于gtfsck
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 fetch-pack执行 git fetch 或 git pull 命令时在本地执行此命令,用于从其他版本库获取缺失的对象
git receive-pack执行 git push 命令时在远程执行的命令,用于接受推送的数据
git send-pack执行 git push 命令时在本地执行的命令,用于向其他版本库推送数据
git upload-archive执行 git archive –remote 命令基于远程版本库创建归档时,远程版本库执行此命令传送归档
git upload-pack执行 git fetch 或 git pull 命令时在远程执行此命令,将对象打包、上传

邮件相关

命令说明
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 cvsserverGit的CVS协议模拟器,可供CVS命令访问Git版本库
git fast-export将提交导出为 git-fast-import 格式
git fast-import其他版本库迁移至Git的通用工具
git svnGit作为前端操作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命令参考手册

命令说明
git init初始化本地git仓库(创建新仓库)
git config --global user.name “xxx”配置用户名
git config --global user.email “xxx@xxx”配置邮件
git config --global color.ui truegit status等命令自动着色
git config --global color.status auto
git config --global color.diff auto
git config --global color.branch auto
git config --global color.interactive auto
git clone git+ssh://git@xxx/test.gitclone远程仓库
git status查看当前版本状态(是否修改)
git add xyz添加xyz文件至index
git add .增加当前子目录下所有改动过的文件至index
git commit -m “xxx”提交
git commit --amend -m “xxx”合并上一次提交(用于反复修改)
git commit -am “xxx”将add和commit合为一步
git rm xxx删除index中的文件
git rm -r *递归删除
git log显示提交日志
git log -1 git log -5显示1行日志 -n为n行
git log --stat显示提交日志及相关变动文件
git log -p -m
git show dfb02e6e4f2f7b573337763e5c0013802e392818显示某个提交的详细内容
git show dfb02可只用commit id的前几位
git show HEAD显示HEAD提交日志
git show HEAD^显示HEAD的父(上一个版本)的提交日志,^^为上两个版本,大于2个版本为一个符合加数字
git tag显示已存在的tag
git tag -a v2.0 -m “xxx”增加v2.0的tag
git show v2.0显示v2.0的日志及详细内容
git log v2.0显示v2.0的日志
git diff显示所有未添加至index的变更
git diff --cached显示所有已添加index但还未commit的变更
git diff HEAD^比较与上一个版本的差异
git diff HEAD – ./lib比较与HEAD版本lib目录的差异
git diff origin/master…master比较远程分支master上有本地分支master上没有的
git diff origin/master…master --stat只显示差异的文件,不显示具体内容
git remote add origin git+ssh://git@xxx/test.git增加远程定义(用于push/pull/fetch)
git branch显示本地分支
git branch --contains 50089显示包含提交50089的分支
git branch -a显示所有分支
git branch -r显示所有原创分支
git branch --merged显示所有已合并到当前分支的分支
git branch --no-merged显示所有未合并到当前分支的分支
git branch -m master master_copy本地分支改名
git checkout -b master_copy从当前分支创建新分支master_copy并检出
git checkout -b master master_copy上面的完整版
git checkout features/performance检出已存在的features/performance分支
git checkout --track hotfixes/BJVEP933检出远程分支hotfixes/BJVEP933并创建本地跟踪分支
git checkout v2.0检出版本v2.0
git checkout -b devel origin/develop从远程分支develop创建新本地分支develop并检出
git checkout – README检出head版本的README文件(可用于修改错误回退)
git merge origin/master合并远程master分支至当前分支
git cherry-pick ff44785404a8e合并提交ff44785404a8e的修改
git push origin master将当前分支push到远程master分支
git push origin :hotfixes/BJVEP933删除远程仓库的hotfixes/BJVEP933
git push --tags把所有tag推送到远程仓库
git fetch获取所有远程分支(不更新本地分支,另需merge)
git fetch --prune获取所有原创分支并清楚服务器上已删除的分支
git pull origin master获取远程分支master并merge到当前分支
git mv README README2重命名文件README为README2
git reset --hard HEAD将当前版本重置为HEAD(通常用于merge失败回退)
git rebase
git branch -d hotfixes/BJVEP933删除分支hotfixes/BJVEP933(本分支修改已合并到其他分支)
git branch -D hotfixes/BJVEP933强制删除分支hotfixes/BJVEP933
git ls-files列出git index包含的文件
git show-branch图示当前分支历史
git show-branch --all图示所有分支历史
git whatchanged显示提交历史对应的文件修改
git revert dfb02e6e4f2f7b573337763e5c0013802e392818撤销提交dfb02e6e4f2f7b573337763e5c0013802e392818
git ls-tree HEAD内部命令:显示某个git对象
git rev-parse v2.0内部命令:显示某个ref对于的SHA1 HASH
git reflog显示所有提交,包括孤立节点
git show HEAD@{5}
git show master@{yesterday}显示master分支昨天的状态
git log --pretty=format:’%h %s’ --graph图示提交日志
git show HEAD~3
git show -s --pretty=raw 2be7fcb476
git stash暂存当前修改,将所有置为HEAD状态
git stash list查看所有暂存
git stash show -p stash@{0}参考第一次暂存
git stash apply stash@{0}应用第一次暂存
git grep “delete from”文件中搜索文本“delete from”
git grep -e ‘#define’ --and -e SORT_DIRENT
git gc
git fsck

git常用命令图标

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页