git命令合集

Git

全局配置

gitconfig--globaluser.namecrperlin#git的用户名

[email protected]#git的登录账号

gitconfig--globalcore.editorvim#设置默认编辑器

gitconfig--globalmerge.toolvimdiff#设置默认的对比文件差异工具

gitconfig--globalcolor.statusauto#显示颜色信息

gitconfig--globalcolor.branchauto#显示颜色信息

gitconfig--globalcolor.interactiveauto#显示颜色信息

gitconfig--globalcolor.diffauto#显示颜色信息

gitconfig--globalpush.defaultsimple#简化提交

gitconfig--list#查看配置的信息

githelpconfig#获取帮助信息

配置SSHKEY

配置这货的好处就是可以省去提交的时候每次都输入账号密码;减少重复工作!

不管是github还是一些基于gitlab的托管社区,配置这个都是大同小异,在个人账户那里找到SSH-KEYGEN

[email protected]#生成密钥,也可以通过图形工具生成,看个人喜好

[email protected]#测试链接github是否成功,其他社区域名不同罢了

初始化本地仓库/提交/链接远程仓库

gitinit#初始化

gitstatus#获取状态,很实用的一个功能,对文件做了操作都能看到各种提示信息

gitadd<file>#.或*代表全部添加

gitcommit-m"注释文本"#添加注释

[email protected]:crperlin/S-NEXT.git#本地链接远程仓库

gitpush-uoriginmaster#推送到主分支

克隆远程仓库

一般的git托管社区都提供两种,一种是基于https,一种是基于ssh

前者需要账号密码提交,后者可以配置SSH-KEYGEN

[email protected]:crperlin/S-NEXT.git#克隆到本地,仓库名就是文件夹的名字

gitclonexx.git<自定义文件夹名字>#不需要带括号,只是区别

git仓库操作

gitadd*#跟踪新文件

gitrm-f*#强制删除所有文件

gitrm--cached*#取消跟踪

gitmvfile_fromfile_to#重命名跟踪文件,与linux一致

gitlog#查看提交记录

gitcommit#提交更新

gitcommit-m"注释文本"#添加注释

gitcommit-a#跳过使用暂存区域,把所有已经跟踪过的文件暂存起来一并提交

gitcommit--amend#修改最后一次提交

gitresetHEAD*#取消已经暂存的文件

gitcheckout--file#取消对文件的修改(从暂存区去除file)

gitcheckoutbranch|tag|commit--file_name#从仓库取出file覆盖当前分支

gitcheckout--.#从暂存区去除文件覆盖工作区

分支管理

gitbranch#列出本地分支

gitbranch-r#列出远端分支

gitbranch-a#列出所有分支

gitbranch-v#查看各个分支最后一个提交对象的信息

gitbranch--merge#查看已经合并到当前分支的分支

gitbranch--no-merge#查看为合并到当前分支的分支

gitbranchtest#新建test分支

gitcheckouttest#切换到test分支

gitcheckout-btest#新建+切换到test分支

gitcheckout-btestdev#基于dev新建test分支,并切换

gitbranch-dtest#删除test分支

gitbranch-Dtest#强制删除test分支

gitmergetest#将test分支合并到当前分支

gitrebasemaster#将master分之上超前的提交,变基到当前分支

分支数据推送更新

gitfetchoriginbranch#获取远端上指定分支

gitmergeoriginbranch#合并远端上指定分支

gitpushoriginbranch#推送到远端上指定分支

gitpushoriginlocalbranch:serverbranch#推送到远端上指定分支

gitcheckout-btestorigin/dev#基于远端dev新建test分支

gitpushorigin:server#删除远端分支[推送空分支,目前等同于删除]

标签版本管理

gittag#列出现有标签

gittagv1.0.0#新建标签

gittag-av0.1-m'注释文本'#新建带注释标签

gittagv2.09fceb02#给指定的指向添加版本

gitshow<version>#显示指定版本的详细信息

gitcheckouttagname#切换到标签

gitpushoriginv1.5#推送分支到源上

gitpushorigin--tags#一次性推送所有分支

gittag-dv0.1#删除标签

gitpushorigin:refs/tags/v0.1#删除远程标签

alias【别名系统,基本和linux一致】

一.到配置文件配置,最傻瓜化的写法,等值赋予

[alias]

logs=log--color--graph--pretty=format:'%Cred%h%Creset-%C(yellow)%d%Creset%s%Cgreen(%cr)%C(boldblue)<%an>%Creset'--abbrev-commit

st=status

ci=commit

br=branch

co=checkout

df=diff

lg=log-p

二.命令行追加

gitconfig--globalalias.cocheckout

gitconfig--globalalias.cicommit

gitconfig--globalalias.brbranch

...

文本搜索

gitgrep'查询文本'#对全局的字符串查询

gitgrep'查询文本'v1.0.0#针对版本的字符串查询

文件修改详情跟踪

gitblame<file>#谁,在什么时间,修改了文件的什么内容

撤销

#放弃工作目录下的所有修改:

gitreset--hardHEAD

#移除缓存区的所有文件(i.e.撤销上次gitadd):

gitresetHEAD

#放弃某个文件的所有本地修改:

gitcheckoutHEAD<file>

#重置一个提交(通过创建一个截然不同的新提交)

gitrevert<commit>

#将HEAD重置到指定的版本,并抛弃该版本之后的所有修改:

gitreset--hard<commit>

#将HEAD重置到上一次提交的版本,并将之后的修改标记为未添加到缓存区的修改:

gitreset<commit>

#将HEAD重置到上一次提交的版本,并保留未提交的本地修改:

gitreset--keep<commit>

相关推荐