Git命令大全

【查看git版本(2.19.2.windows.1)】

  • git --version

  • git --exec-path(获取git的执行目录)

【版本库配置项】

  • git config user.name "licong"

  • git config color.ui true

  • git config --unset user.name(取消配置项)

  • git config --unset user.email(取消配置项)

【用户级别配置】

  • git config --global user.name "licong"

  • git config --global color.ui true

  • git config --unset --global user.name

  • git config --unset --global user.email

【系统级别配置】

  • git config --system user.name "licong"

  • git config --system color.ui true

  • git config --unset --system user.name

  • git config --unset --system user.email

【config备注】

  • 描述:git config[--global]|[--system],不加global和system代表当前版本库配置,global代表当前用户配置,system代表系统级配置。git config 修改的是/.git/config文件

【配置别名】

  • git config --global alias.st status

  • git config --global alias.ci commit

  • git config --global alias.co checkout


【初始化版本库】

  • git init

【Git添加暂存区】

  • git add -u(将本地文件变更(修改、删除)全部记录到暂存区中)

  • git add -A (将本地所有改动及新增文件添加到暂存区中)

  • git add -i (进入交互式页面)

  • git add .

  • git add -f welcome.txt(添加忽略文件到暂存区)

【Git rev-parse】

  • git rev-parse --git-dir(显示版本库.git目录所在位置)

  • git rev-parse --show-toplevel(显示工作区根目录)

  • git rev-parse master(查看引用对应的提交id)

  • git rev-parse refs/heads/master(查看引用对应的提交id)

  • git rev-parse master HEAD

  • git rev-parse --symbolic --branches (显示分支)

【Git提交】

  • git commit --allow-empty -m "who does commit"(允许空提交)

  • git commit --amend --allow-empty --reset-author (最新的提交,修改作者、提交者)

【Git重置命令】

  • git reset [-q] [ ] [--] ...

  • git reset [--soft|--mixed|--hard|--merge|--keep] [-q] [commit]

  • 上面列出了两种用法,[commit]是可选项,可以使用引用或者提交ID,如果省略 则相当于使用了HEAD的指向作为提交ID。

  • 上面列出的两种用法区别在于,第一种用法在命令中包含路径 。为了避免路径和引用(或者提交ID)同名而发生冲突,可以在 前用两个连续的短线作为分隔。

  • 第一种用法(包含路径 的用法)不会重置引用,更不会改变工作区,而是用指定提交状态( )下的文件替换掉暂存区中的文件。例如命令:git reset HEAD 相当于取消之前执行的 git add 命令时改变的暂存区。

  • 第二种用法则会重置引用。根据不同的选项,可以对暂存区或工作区进行重置。

  • git reset --hard 1.替换引用指向,2.替换暂存区,3.替换工作区

  • git reset --soft 只更改引用的指向,不更改暂存区和工作区

  • git reset --mixed 1.更改引用指向,2.重置暂存区,工作区不改变

【用reflog挽救错误的重置】

  • git config core.logallrefupdates(确认版本库,是否开启分支日志功能)

  • git reflog show master | head -5

  • git reset --hard master@{2} (master@{2}:master分支第2次改变时的SHA1哈希值)

【Git检出】

  • 分离头指针:指的是HEAD头指针,指向了一个具体提交ID,而不是一个引用(分支)

  • git checkout [-q] [commit] -- ....

  • git checkout [branch]

  • git checkout [-m] [[-b|--orphan] <new_branch>] [<start_point>]

  • 上面列出的第一种用法和第二种用法的区别在于,第一种用法命令中包含路径 。为了避免路径和引用(或者提交ID)同名而发生冲突,可以在 前面用两个连续的短线作为分隔。

  • 第一种用法的 是可选项,如果省略则从暂存区(index)进行检出。重置的默认值是HEAD,而检出的默认值是暂存区。因此重置一般用于重置暂存区,而检出命令主要覆盖工作区(如果 不省略,也会替换暂存区中的文件)

  • 第一种用法不会改变HEAD头指针,主要是用于指定版本的文件覆盖工作区中对应的文件。如果省略commit,则会用暂存区的文件覆盖工作区的文件,否则用指定提交中的文件覆盖暂存区和工作区中对应的文件。

  • 第二种用法会改变HEAD头指针。之所以后面的参数写作 ,是因为只有HEAD切换到一个分支才可以对提交进行跟踪,否则仍然会进入“分离头指针”的状态。在“分离头指针”状态下的提交不能被引用关联到,从而可能丢失。所以用法二最主要的作用是切换分支,如果省略 ,则相当于对工作区进行状态检查

【Git Stash(暂存工作进度)】

  • git stash save "message"

保存工作进度,会分别对暂存区和工作区的状态进行保存

  • git stash list(查看保存的进度)

  • git stash pop --[index] [ ]

如果不使用任何参数,会恢复最新保存的工作进度,并从工作进度列表中清除

如果提供 参数(来自于git stash list 显示的列表),则从 中恢复。

选项除了恢复工作区文件外,还尝试恢复暂存区。

  • git stash apply --[index] [ ]

除了不删除工作进度之外,其余和git stash pop命令一样

  • git stash drop [ ]

删除一个工作进度,默认删除最新的

  • git stash clear

删除所有工作进度

  • git stash branch

基于进度创建分支

【Git 里程碑】

  • git tag -m "create new tag" v1.0

里程碑也是一个引用,通过记录提交ID,来为当前版本库的状态留影

  • git describe命令将最新提交显示为一个易记名称。显示的时候会选取离该提交最近的里程碑作为“基础版本号”,后面附加标识距离“基础版本号”的数字,以及该提交SHA1哈希值的缩写。

【Git清除命令】

  • git clean -nd(测试运行,查看哪些文件或目录被删除)

  • git clean -fd(清除当前工作区中,没有加入版本库的文件和目录)

  • git rm 1.txt 2.txt 3.txt(git删除文件)

【恢复删除的文件】

  • git cat-file -p HEAD~1:welcome.txt > welcome.txt

  • git show HEAD~1:welcome.txt > welcome.txt

  • git checkout HEAD~1 -- welcome.txt

【移动文件】

  • git mv welcome.txt README(文件重命名)


【Git日志命令】

  • git log --pretty=fuller(打印全部日志)

  • git log --stat(统计提交文件变更)

  • git log --pretty=oneline(日志信息展示一行)

  • git log -l --pretty=raw --graph --stat(日志详细输出)

  • git log --graph --oneline(--oneline参数在Git1.6.3及以后版本才有)

  • git log --oneline --decorate -4(该命令可以显示,提交对应的里程碑,decorate 可以在提交ID旁边显示该提交关联的引用)

【Git查看工作空间状态】

  • git status -s(精简格式)

  • git status --ignored -s(查看忽略文件)

【Git比较命令】

  • git diff(工作区与暂存区比较)

  • git diff HEAD(工作区与当前分支比较)

  • git diff --cached(暂存区与版本库中文件比较)


【查看文件时间戳】

  • ls --full-time .git/index

【删除暂存区文件】

  • git rm --cached

【查看暂存区、版本库目录树】

  • git ls-tree -l HEAD (查看当前分支目录树;-l显示文件大小)

  • git ls-tree -l(查看暂存区目录树;)

【Git查看对象类型】

  • git cat-file -t cd6ff3(根据id查询对象的类型)

【Git查询对象内容】

  • git cat-file -p cd6ff3


【Git提供了很多方法可以方便的访问Git库中的对象】

  • 采用部分SHA1哈希值, 不必把40位全部写全,只取开头部分(4位以上 )

  • 使用HEAD代表版本库中最近一次提交

  • 符号 ^ 可以用于指代父提交【HEAD^代表版本库中上一次提交;HEAD^^代表版本库中上两次提交】

  • 对于一个提交有多个父提交,可以在符号 ^ 后面数字表示是第几个父提交。HEAD^2

  • 符号~ ,也可以用于指代祖先提交。a107354~5,及相当于a107354^^^^^

  • 提交所对应的树对象,可以用如下语法访问a107354^{tree}

  • 某一次提交对应的文件对象,可以用如下语法访问a107354^:/path/to/file

  • 暂存区中的文件对象,可以用如下语法访问:/path/to/file

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值