当前位置: 首页 > 科技观察

常用Git命令一览

时间:2023-03-17 13:02:37 科技观察

常用Git命令一览一般来说,日常使用只需记住下图中的6条命令即可。但如果你熟练使用它,你可能要记住60到100个命令。以下是我整理的常用Git命令列表。几个特殊名词的翻译如下:Workspace:工作区Index/Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库1.Createanewcodebase#在当前创建一个新的Git代码库directory$gitinit#新建一个目录,初始化为Git代码库$gitinit[project-name]#下载一个项目及其整个代码历史$gitclone[url]2.配置Git的设置文件为.gitconfig,可以在用户家目录(全局配置),或者项目目录(项目配置)#显示当前Git配置$gitconfig--list#编辑Git配置文件$gitconfig-e[--global]#提交时设置用户信息code$gitconfig[--global]user.name[name]"$gitconfig[--global]user.email[emailaddress]"#颜色设置gitconfig--globalcolor.uitrue#gitstatus等命令自动上色gitconfig--globalcolor.statusautogitconfig--globalcolor.diffautogitconfig--globalcolor.branchautogitconfig--globalcolor.interactiveautogitconfig--global--unsethttp.proxy#removeproxyconfigurationongit3.添加/删除文件#添加指定文件到暂存区$gitadd[file1][file2]...#添加指定目录到暂存区区域,包括子目录$gitadd[dir]#将当前目录下的所有文件添加到暂存区$gitadd.#每次添加更改前都需要确认#对于同一个文件的多次更改,可以批量提交$gitadd-p#删除工作区文件,并将此次删除放入暂存区$gitrm[file1][file2]...#停止跟踪指定文件,但文件会保留在工作区$gitrm--cached[file]#重命名文件,并将这个重命名放入暂存区$gitmv[file-original][file-renamed]4.代码提交#将暂存区提交到仓库仓库区$gitcommit-m[message]#提交暂存区指定文件到仓库区$gitcommit[file1][file2]...-m[message]#提交工作区自上次以来的变化commit,直接到仓库区$gitcommit-a#提交时显示所有diff信息$gitcommit-v#将添加和提交合二为一$gitcommit-am'message'#用新的commit替换上次的commit#如果有代码无新变化,用于重写上次commit的提交信息$gitcommit--amend-m[message]#重做上次commit,并包含指定文件的新变化$gitcommit--amend[file1][file2]...五。Branch#列出所有本地分支$gitbranch#列出所有远程分支$gitbranch-r#列出所有本地分支和远程分支$gitbranch-a#创建一个新分支,但仍然停留在当前分支$gitbranch[branch-name]#新建分支并切换到$gitcheckout-b[branch]#新建分支并指向指定的commit$gitbranch[branch][commit]#新建分支并与指定的远程分支建立跟踪关系$gitbranch--track[branch][remote-branch]#切换到指定分支并更新工作空间$gitcheckout[branch-name]#切换到上一个分支$gitcheckout-#建立已有分支和指定分支的跟踪关系远程分支$gitbranch--set-upstream[branch][remote-branch]#将指定分支合并到当前分支$gitmerge[branch]#选择一个commit合并到当前分支$gitcherry-pick[commit]#删除分支$gitbranch-d[branch-name]#删除远程分支$gitpushorigin--delete[branch-name]$gitbranch-dr[remote/branch]#checkoutversionv2.0$gitcheckoutv2.0#从远程分支develop创建一个新的本地分支devel并Checkout$gitcheckout-bdevelorigin/develop#查看head版本的README文件(可用于修改错误回滚)gitcheckout--README6.tag#列出所有标签$gittag#在当前commit中新建一个标签$gittag[tag]#Create指定提交中的新标签$gittag[tag][commit]#删除本地标签$gittag-d[tag]#删除远程标签$gitpushorigin:refs/tags/[tagName]#查看标签信息$gitshow[tag]#提交指定tag$gitpush[remote][tag]#提交所有tag$gitpush[remote]--tags#新建分支并指向某个tag$gitcheckout-b[branch][tag]七.查看信息#显示更改的文件$gitstatus#显示当前分支的版本历史$gitlog#显示提交历史,以及每次发生提交时更改的文件$gitlog--stat#搜索提交历史,根据keyword$gitlog-S[keyword]#显示某次commit后的所有变化,每Acommit占一行$gitlog[tag]HEAD--pretty=format:%s#显示某次commit后的所有变化,其"commitdescription”必须满足搜索条件$gitlog[tag]HEAD--grepfeature#显示某个文件的版本历史,包括文件重命名$gitlog--follow[file]$gitwhatchanged[file]#显示与该文件相关的每一个diff指定文件$gitlog-p[file]#显示过去5次提交$gitlog-5--pretty--oneline#显示所有提交的用户,按提交次数排序$gitshortlog-sn#显示指定文件的提交者和时间修改$gitblame[file]#显示暂存区和工作区的区别$gitdiff#显示暂存区与上次提交的差异$gitdiff--cached[file]#显示工作区与当前分支最新提交的差异$gitdiffHEAD#显示两次提交的差异$gitdiff[first-branch]...[second-branch]#显示你今天写了多少行代码$gitdiff--shortstat"@{0dayago}"#显示某次提交的元数据和内容变化$gitshow[commit]#显示某次提交的变化文件$gitshow--name-only[commit]#显示某次提交,某次提交一个文件的内容$gitshow[commit]:[filename]#显示当前分支最近几次提交$gitreflog八.远程同步#下载远程仓库的所有改动$gitfetch[remote]#显示所有远程仓库$gitremote-v#显示远程仓库的信息$gitremoteshow[remote]#添加一个新的远程仓库并命名$gitremoteadd[shortname][url]#从远程仓库中取出修改并合并到本地分支$gitpull[remote][branch]#上传本地指定分支到远程仓库$gitpush[remote][branch]#强制将当前分支推送到远程仓库,即使有冲突$gitpush[remote]--force#将所有分支推送到远程仓库$gitpush[remote]--all9.undo#Restorethespecifiedfilein暂存区到工作区$gitcheckout[file]#恢复一个commit的指定文件到暂存区和工作区$gitcheckout[commit][file]#恢复暂存区所有文件到工作区$gitcheckout.#重置暂存区指定文件,与上次提交一致,但工作区不变$gitreset[file]#重置暂存区和工作区,与上次提交一致$gitreset--hard#将当前分支的指针重置为指定的commit,同时重置暂存区,但工作区不变$gitreset[commit]#将当前分支的HEAD重置为指定的commit,并同时重置暂存区和工作区与指定commit一致$gitreset--hard[commit]#将当前HEAD重置为指定commit,但保持暂存区和工作区不变$gitreset--保持[commit]#创建一个新的commit,使用来撤销指定的commit#后者的所有更改都会被前者抵消并应用到当前分支$gitrevert[commit]#暂时移除未提交的更改,然后将其移动到$gitstash中$gitstashpop10.其他gitinit#Initialization本地git仓库(新建仓库)gitconfig--globaluser.name"xxx"#配置用户名gitconfig--globaluser.email"xxx@xxx.com"#配置邮箱-globalcolor.diffautogitconfig--globalcolor.branchautogitconfig--globalcolor.interactiveautogitconfig--global--unsethttp.proxy#removeproxyconfigurationongitclonegit+ssh://git@192.168.53.168/VT.git#clone远程仓库gitstatus#查看当前版本状态(是否修改)gitaddxyz#添加xyz文件到indexgitadd.#添加当前子目录下所有变化的文件到indexgitcommit-m'xxx'#提交gitcommit--amend-m'xxx'#合并上一次提交(针对重复修改)gitcommit-am'xxx'#将添加和提交合并为一步gitrmxxx#删除索引中的文件gitrm-r*#递归删除gitlog#显示提交日志gitlog-1#显示第1行日志-n是第n行gitlog-5gitlog--stat#显示提交日志及相关变更文件gitlog-p-mgitshowdfb02e6e4f2f7b573337763e5c0013802e392818#显示a的详细内容一定提交gitshowdfb02#只能用第一个commitid的几位)的提交日志^^是最后两个版本^5是最后5个版本以及详细内容gitlogv2.0#显示v2.0的日志gitdiff#显示所有没有加入的修改索引gitdiff--cached#显示所有添加了索引但还未提交的变更gitdiffHEAD^#与之前版本的差异比较gitdiffHEAD--./lib#与HEAD版本的lib目录比较差异gitdifforigin/master..master#比较远程分支master上有gitdifforigin/master..master--stat本地分支master上没有。只显示差异文件,不显示具体内容。对于push/pull/fetch)gitbranch#Showlocalbranchgitbranch--contains50089#Showbranchcontainingcommit50089gitbranch-a#Showallbranchesgitbranch-r#Showalloriginalbranchesgitbranch--merged#Showallhasbeenmergedintothecurrent分支branch分支gitbranch--no-merged#显示所有未合并到当前分支的分支gitbranch-mmastermaster_copy#重命名本地分支gitcheckout-bmaster_copy#从当前分支新建分支master_copy并检出gitcheckout-bmastermaster_copy#的上面的完整版本gitcheckoutfeatures/performance#查看已有的features/performance分支gitcheckout--trackhotfixes/BJVEP933#查看远程分支hotfixes/BJVEP933并创建本地跟踪分支gitcheckoutv2.0#查看版本v2.0gitcheckout-bdeveloporigin/develop#从远程分支develop新建本地分支devel并检出gitcheckout--README#检出head版本的README文件(可用于修改errorrollback)gitmergeorigin/master#将远程master分支合并到当前分支gitcherry-pickff44785404a8e#合并提交ff44785404a8e的修改分支推送到远程master分支gitpushoorigin:hotfixes/BJVEP933#删除远程仓库的hotfixes/BJVEP933分支。gitpush--tags#将所有标签推送到远程仓库。分支并清除服务器上删除的分支gitpulloriginmaster#获取远程分支master并合并到当前分支gitmvREADMEREADME2#将文件README重命名为README2gitreset--hardHEAD#将当前版本重置为HEAD(通常用于合并失败回退)gitrebasegitbranch-dhotfixes/BJVEP933#删除分支hotfixes/BJVEP933(该分支修改已合并到其他分支)gitbranch-Dhotfixes/BJVEP933#强制删除分支hotfixes/BJVEP933gitls-files#列出gitindex中包含的文件gitshow-branch#说明当前分支historygitshow-branch--all#所有分支历史的说明gitwhatchanged#显示提交历史对应的文件修改ForSHA1HASHgitreflog#显示所有提交,包括孤立节点gitshowHEAD@{5}gitshowmaster@{yesterday}#显示状态昨天的master分支~3gitshow-s--pretty=raw2be7fcb476gitstash#暂时保存当前修改,把所有修改放到HEADstatusgitstashlist#查看所有暂存gitstashshow-pstash@{0}#引用第一个暂存gitstashapplystash@{0}#应用第一个substaginggitgrep"deletefrom"#在文件中搜索“deletefrom”文本gitgrep-e'#define'--and-eSORT_DIRENTgitgcgitfsck#生成一个可以发布的压缩包图,GitHub几天收到2.1k星命令行生存指南:强制早点睡,轻松打造8个自定义Linux发行版的工具说说Linux内核信号量Github存在高危漏洞,多个项目暴露潜在危险