Git 常用命令
Posted 卡霾哈霾哈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git 常用命令相关的知识,希望对你有一定的参考价值。
最常见
# 查看 git 客户端版本
git --version
# 得到一个完整的 git 子命令列表
git help -all
# 创建一个新的 Git 版本库
git init
# 增加该目录下的某个文件到版本库中
git add file
# 把当前目录及子目录中的文件都添加到版本库里
git add.
# 从版本库中删除文件: foo.txt; 会将文件从索引区和工作目录中都删除。
git rm foo.txt
git commit -m "delete foo.txt"
# 版本库文件重命名; 把 foo.txt 改为 foo_new.txt
git mv foo.txt foo_new.txt
git commit -m "rename foo.txt to foo_new.txt"
# 显示 add 后但是没有 commit 的变更
git status
# 查看版本库里一系列单独提交的历史,如果继续看更早的就按 "E"
git log
# 按住 Esc 连续按 2 次 大写的 "Z",就能退出当前命令
# 创建版本库副本;git clone
# 从本地的仓库 HelloWorld 创建副本 MyHelloWorld
git clone HelloWorld MyHelloWorld
# 从 Git 服务器上创建副本,如从 GitHub 的一个仓库创建副本:
git clone https://github.com/kamaihamaiha/Notes MyNotes
# 创建一个 Tag(带附注的),commit_ID 在指定的提交 ID 下创建。
git tag -m "Tag version 1.0" V1.0 commit_ID
配置相关命令
# 配置提交作者用户名; 也可以加上 --global 选项,用来作用域全局设置。
git config user.name "张三"
# 配置提交作者邮箱
git config user.email "zhangsan@gmail.com"
# 查看整组配置文件里共同查找的所有变量的设置值
git config -l
# 只看版本库特定的设置
cat .git/config
# 移除用户名设置和邮箱设置,也可以加上 --global 选项,用来作用域全局设置。
git config --unset user.name
git config --unset user.email
分支
# 查看分支
git branch 查看本地分支
git branch -r 查看远程分支
git branch -a 查看所有分支
git branch -v 查看本地分支,含 HEAD 值,提交信息。
# 创建分支:hot_fix
git branch hot_fix
# 切换分支,切换到 hot_fix 分支
git checkout hot_fix
# 合并分支
①:切换到合并目标的分支-master
git checkout master
②:执行 合并操作。把 hot_fix 合并到 master
git merge hot_fix
# 删除分支
git branch -d 分支名
# 重命名分支
第一步:重命名本地分支:
1. 切换到本分支下
2. git branch -m new-name
第二步:删除远程旧分支名,然后把本地的新的分支名字推送上去:
1. git push origin :old-name new-name
第三步:给本地的新名字的分支重新设置上传流。
git push origin -u new-name
# 创建空白新分支
1. git branch <new_branch>
2. git checkout <new_branch>
3. git rm --cached -r .
4. git clean -f -d
5. git commit --allow-empty -m "..."
6. git push origin <new_branch>
# 在本地创建分支【关联远程分支】并切换到该分支
git checkout -b dev(本地分支名) origin/dev(远程分支名称)
# 远程仓库建了一个新分支,本地想要查出来
git remote update origin -p
log 命令
1. git log
查看提交日志
2. git log --pretty=oneline
查看提交日志,每次递交都按照一行展示
3. git log --oneline
查看提交日志,每次递交都按照一行展示,并且现实当前版本及以前的版本提交日志。其中 HEAD 的哈希值只显示前几位。
4. git reflog
查看提交日志,显示提交的索引值。
5. git rev-list HEAD --count
查看当前分支提交次数
6. git log --follow specify_file
查看指定文件(specify_file)相关联的整个历史记录
diff 命令
1. git diff
工作区和暂存区到差别, 后面可以加上文件
2. git diff --cached
历史库和暂存区到差别
查看提交
# 查看特定提交更加详细的信息,commit_ID 是具体的提交 ID
git show commit_ID
# 查看提交信息单行摘要,--more=10 是最近的 10 个提交,不加上就显示最新的提交
git show-branch --more=10
# 查看提交差异,commitA_ID 和 commitB_ID 是两次提交的 ID。
git diff commitA_ID commitB_ID
reset 命令
用来进行前进和后退。
reset 三个参数:--hard, --mixed, --soft
--hard
在本地库移动 HEAD 指针
重置缓存区
重置工作区
--mixed
在本地库移动 HEAD 指针
重置缓存区
--soft
在本地库移动 HEAD 指针
前进和后退命令
三种方式:基于索引值[推荐]、使用 ^、使用 ~
# 到指定某个提交
git reset --hard commit_ID
# 往后退
git reset --hard HEAD^ //退一步
git reset --hard HEAD^^ //退两步
...
# 往后退
git reset --hard HEAD~1 //退一步
git reset --hard HEAD~2 //退两步
...
不太常用的命令
# 根据文件的散列值,把对象内容从对象库中提取出来
git cat-file -p 散列值
# 通过对象的唯一前缀来查找对象散列值(如:3b18e512d)
git rev-parse 3b18e512d
# 查看版本库中的所有文件,及其对应的散列值
git ls-files -s
# 捕获索引状态,并保存到一个数对象里
git write-tree
# 查看提交的细节
git show --prety=fuller
# 计算文件的 SHA1 散列值
git hash-object file
# 将一个文件由已暂存转化成未暂存,也就是删除索引中的文件并保留在工作目录中
git rm --cached file
以上是关于Git 常用命令的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段15——git命令操作一个完整流程
GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段
GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段