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-012020-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下来
posted @   立勋  阅读(8)  评论(0编辑  收藏  举报
编辑推荐:
· 从 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)
点击右上角即可分享
微信分享提示