Git常用命

转自:https://blog.csdn.net/ahjxhy2010/article/details/80047553

1.查看某个文件或目录的修改历史

bash 复制代码
git log filename   #查看fileName相关的commit记录
git log -p filenam    # 显示每次提交的diff

#只看某次提交中的某个文件变化,commit-id  文件名
git show c5e69804bbd9725b5dece57f8cbece4a96b9f80b filename

git log --oneline #每笔提交只显示一行

# 查看当前目录下的提交记录,-n 是个数
git log -n 10 --stat .

2.查看暂存区

bash 复制代码
git ls-files    //查看暂存区中文件信息

如何查看暂存区中bb.txt文件内容是什么?

bash 复制代码
git ls-files -s -- 文件名 或者直接 git ls-files -s
//然后通过Blob对象,查询bb.txt里面的内容:
git cat-file -p 6cef
bash 复制代码
git stash    //可以把当前工作现场"储藏"起来,等以后恢复现场后继续工作
//把工作区和暂存区的内容都存起来
git stash list       //查看暂存内容
git stash pop    //恢复的同时把stash内容也删了
git stash clear  //清空所有的内容
git stash drop stash@{0} //这是删除第一个队列

3.commit

bash 复制代码
//打印所有commit记录
git log

//查看修改的文件具体内容
git show commitId
//查看修改文件的列表
git show commitId --stat

//查看某次commit中具体某个文件的修改:
git show commitId fileName

//提交不会产生新的commitID
git commit --amend

4.分支操作

bash 复制代码
创建分支:git branch <name>

切换分支:git checkout <name>或者git switch <name>

创建+切换分支:git checkout -b <name>或者git switch -c <name>

删除分支:git branch -d <name>

恢复分支:git branch 你的分支名 SHA1值

合并某分支到当前分支:git merge <name>

6.删除文件的工作区所有更改-回退

bash 复制代码
% git checkout -- filename

情况1:在工作区做了修改,并未添加到暂存区,想撤销工作区的修改,用 git restore file;

情况2:在工作区做了修改,并用git add 添加到了暂存区,未提交;想撤销,分两步,1.先撤销暂存区的修改,用 git reset, 2.然后参考情况1撤销工作区的修改;

通过 git reset 文件名 命令可以撤销指定文件的 git add 操作,即这个文件在暂存区的修改。

通过 git reset 命令可以撤销之前的所有 git add 操作,即在暂存区的修改。

情况3:在工作区做了修改,且git add git commit添加并提交了内容,想撤销本次提交,直接用 git reset --hard HEAD^回退版本,即可保证工作区,暂存区,版本库都是上次的内容。(这样修改的代码会没有,慎用!)

git reset --soft HEAD^,只是将commit操作回退,add .和工作区内容都在。

删除所有工作区的修改:git checkout . // 丢弃所有修改或删除,不影响新增或未跟踪的文件。会递归下级目录.

只添加改动的文件,不添加删除和新建文件:

bash 复制代码
git add -A .  //添加有改动、新增、删除的文件
git add -u .  //添加有改动、删除的文件,不包括新增的文件(这个已确认不添加新增的文件,u即update的缩写)
git add . //看许多博客说它只添加编辑+新增的文件,不添加被删除的文件,但我试了下会添加删除的文件。。。

7.统计

https://blog.csdn.net/beibeix2015/article/details/111868461

bash 复制代码
git log --author="author"    //查看某个人的所有提交,用于总结报告
git log --reverse  --author="author"    //逆序查看
git log --author="zhangphil" --oneline | wc -l    //总的提交次数

8.调整commit的顺序

假设想把下述倒数第3个提交149fa24挪到第一个,

bash 复制代码
git rebase -i HEAD~3
#再通过dd剪切一行,通过p粘贴 

注意上图展示的提交是倒序,最晚提交的在最下面。 前提至少这几笔提交没有先后依赖关系,否则不会成功。

bash 复制代码
git branch设置不less格式:git config --global pager.branch false

git log设置不less格式: git config --global pager.log false
相关推荐
Winston Wood3 分钟前
一文了解git TAG
git·版本控制
喵喵先森36 分钟前
Git 的基本概念和使用方式
git·源代码管理
xianwu5432 小时前
反向代理模块
linux·开发语言·网络·git
binishuaio4 小时前
Java 第11天 (git版本控制器基础用法)
java·开发语言·git
会发光的猪。5 小时前
如何在vscode中安装git详细新手教程
前端·ide·git·vscode
stewie67 小时前
在IDEA中使用Git
java·git
晓理紫15 小时前
使用git lfs向huggingface提交较大的数据或者权重
git
我不是程序猿儿17 小时前
【GIT】sourceTree的“当前分支“,“合并分支“与“检出分支的区别
git
_OLi_1 天前
IDEA中新建与切换Git分支
java·spring boot·git
PyAIGCMaster1 天前
ubuntu下安装 git 及部署cosyvoice(1)
git