Git02-git常用命令
git 常用命令
Git文档:http://www.kernel.org/pub/software/scm/git/docs/
git子命令
//启动工作区
clone 将版本库克隆到新目录中
init 创建一个空的Git版本库或重新初始化一个现有的版本库
//处理当前更改
add 添加文件到暂存区
mv 移动或重命名文件、目录或符号链接
restore 恢复工作树文件
rm 从工作树和索引中删除文件(从暂存区和工作区中删除)
rm --cached 移除暂存区中的文件
sparse-checkout 初始化和修改稀疏签出(sparse-checkout)
//查看历史和状态
bisect 使用二叉搜索查找引入错误的提交
diff 查看工作区和暂存区的差别
diff --cached 查看暂存区与本地git仓库的差别
git diff HEAD 查看工作区和本地仓库的差别,HEAD指向本地仓库中最新提交的版本
grep Print lines matching a pattern
log 显示提交日志
log -p -2 展开显示每次提交的内容差异(-p),显示最近两次更新(-2)
show 显示各种类型的对象
status 显示工作树状态
status -s 查看当前状态概况
//分支、标记相关
branch 查看本地所有分支
branch -a 查看所有的分支
branch -r 查看远程所有分支
commit 记录对版本库的更改
merge 将两个或多个开发历史记录连接在一起
rebase 在另一个基本提示之上重新应用提交
reset 将当前 HEAD 重置为指定状态
switch 切换分支
checkout 表示核查工作区相对于版本库修改过的文件
checkout <分支名> 切换分支
checkout -b <分支名> 新建并切换到新分支
tag 创建、列出、删除或验证使用 GPG 签名的标签对象
//协作
fetch 从另一个版本库下载对象和引用
pull 从另一个版本库或本地分支获取并与之集成
push 更新远程引用以及关联的对象
//帮助
help -a 查看完整的git子命令列表
git <subcommand> --help 获取子命令的帮助文档
git log
git log –p -2
-p 选项展开显示每次提交的内容差异
-2 则仅显示最近的两次更新
git log --stat
--stat,仅显示简要的增改行数统计
git log --pretty=oneline
ca82a6dff817ec66f44342007202690a93763949 changed the verison number
085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7 removed unnecessary test code
a11bef06a3f659402fe7563abf99ad00de2209e6 first commit
--pretty 选项,可以指定使用完全不同于默认格式的方式展示提交历史。
oneline 将每个提交放在一行显示,这在提交数很大时非常有用。另外还有 short, full 和 fuller 可以用
$ git log --pretty=format:"%h - %an, %ar : %s"
ca82a6d - Scott Chacon, 11 months ago : changed the verison number
085bb3b - Scott Chacon, 11 months ago : removed unnecessary test code
a11bef0 - Scott Chacon, 11 months ago : first commit
format,可以定制要显示的记录格式
常用的格式占位符写法及其代表的意义。
%H 提交提交对象(commit)的完整哈希字串
%h 提交提交对象的简短哈希字串
%T 树对树对象(tree)的完整哈希字串
%t 树对树对象的简短哈希字串
%P 父对象(parent)的完整哈希字串
%p 父对象的简短哈希字串
%an 作者作者(author)的名字(实际作出修改的人)
%ae 作者的电子邮件地址
%ad 作者修订日期( 可以用 -date= 选项选项定制格式)
%ar 作者修订日期, 按多久以前的方式显示
%cn 提交者(committer)的名字(最后将此工作成果提交到仓库的人)
%ce 提交者的电子邮件地址
%cd 提交日期
%cr 提交日期, 按多久以前的方式显示
%s 提交提交说明
git log --pretty=format:"%h %s" --graph
--graph 显示 ASCII 图形表示的分支合并历史。
## 限制输出长度
列出所有最近两周内的提交
git log --since=2.weeks
查看2020-10-01到2020-11-01期间,tom提交但未合并的位于test目录下的文件
git log --pretty="%h:%s" --author=tom --since="2020-10-01" \
--before="2020-11-01" --no-merges -- test/
用两个短划线(--)隔开之前的选项和后面限定的路径名
其他常用的类似选项。
-(n) 仅显仅显示最近的 n 条提交
--after 仅显仅显示指定时间之后的提交。
--before 仅显仅显示指定时间之前的提交。
--author 仅显仅显示指定作者相关的提交。
--committer 仅显仅显示指定提交者相关的提交。
如果要得到同时满足这两个选项搜索条件的提交,就必须用 --all-match 选项
git命令使用示例
//Git的命令能够理解“短”和“长”的选项。
git commit -m "Fixed a type."
git commit --message="Fixed a type."
//可以使用“双破折号”的分离一系列参数。例如,如果有一个文件和一个标签都叫main.c。
//Checkout the tag named "main.c"
git checkout main.c
//Checkout the file named "main.c"
git checkout -- main.c
撤销操作
提交完了发现漏掉了几个文件没有加,或者提交信息写错了。想要撤消刚才的提交操作
git commit --amend
取消已经暂存的文件
git reset HEAD
取消取消对文件的修改
git checkout --
注:git diff 后跟两个参数,如果只写一个参数,表示默认跟 workspace中的代码作比较。git diff 显示的结果为第二个参数所指的代码在第一个参数所指代码基础上的修改。如,git diff HEAD 表示 workspace 在 最新commit的基础上所做的修改
git命令使用示例
显示远程库origin里的资源
git remote show origin
推送本地的branch1分支到远程的origin分支
git push origin branch1
查看用户的配置
git config --list
git remote add origin git@192.168.1.119:ndshow
git push origin master:develop
git push origin master:hb-dev 将本地库与服务器上的库进行关联
git branch -D master develop 删除本地库develop
git merge origin/dev 将分支dev与当前分支进行合并
git checkout dev 切换到本地dev分支
git remote show 查看远程库
git rm 文件名(包括路径) 从git中删除指定文件
git clone [git://github.com/schacon/grit.git](git://github.com/schacon/grit.git) 从服务器上将代码给拉下来
git ls-files 看已经被提交的
git rm [file name] 删除一个文件
git commit -v 当你用-v参数的时候可以看commit的差异
git commit -m “This is the message describing the commit” 添加commit信息
git stash push 将文件给push到一个临时空间中
git stash pop 将文件从临时空间pop下来
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)