git的历史记录
1.查看git日志
git log 查看全部commit信息
git log -p 查看全部commit信息和代码的差异
git log -1 查看近1条的commit信息
git log -10 查看近10条的commit信息
git log 7b1558c 根据提交名称的缩写查询commit信息(通常是4-5位,但是7-8位保证匹配的唯一性)
2.指定范围查找
git log --before="5 hours" -1 查看最近5小时的提交,--since和--before接收大多数英文格式的日期,例如24hours 1minute 2008-10.01等
git log 18f822e..0bb3dfb 指定最老版本和最新版本之间的提交 注意:该区间左开右闭
git log 18f822e..HEAD HEAD代表版本库中当前分支末稍的最新版本
git log 18f822e.. 相当与git log 18f822e..HEAD
git log --pretty=format:"%h %s" 1.0..HEAD
^脱字号,相当与回溯一个版本18f822e^表示18f822e之前的那个版本,18f822e^^表示18f822e之前的版本的之前的版本。
(Windows下,如果版本号带有脱字号,那么要加双引号,否则不识别,如18f822e^则不识别,应该为"18f822e^")
*~N 波浪字符加数字,指回溯n个版本,18f822e~1是指18f822e的父节点,18f822e~2是指18f822e的祖父节点
git log -1 HEAD^^^
git log -1 HEAD^~2
git log -1 HEAD~1^^
git log -1 HEAD~3
也可以用在查询范围中
git log HEAD~10..HEAD
3.查看版本差异
git diff 18f822e 显示版本18f822e与当前工作目录树间的差异
git diff --stat 1.0 得到变更统计数据
4.查明责任人
git blame hello.html 查看特定代码快的历史信息,返回的信息中前缀中包含提交名称,提交人,提交时间
结果:
^7b1558c index.html (Travis Swicegood 2008-09-21 14:20:21 -0500 1) <html>
a5dacabd index.html (Travis Swicegood 2008-09-21 20:37:47 -0500 2) <head>
git blame -L 12,13 hello.html 查看12行到13行的日志
git blame -L 12,+2 hello.html
结果:
^7b1558c index.html (Travis Swicegood 2008-09-21 14:20:21 -0500 12) </body>
^7b1558c index.html (Travis Swicegood 2008-09-21 14:20:21 -0500 13) </html>
git blame -L 12,-2 hello.html
结果:
4333289e index.html (Travis Swicegood 2008-09-22 07:54:28 -0500 11) </ul>
^7b1558c index.html (Travis Swicegood 2008-09-21 14:20:21 -0500 12) </body>
git blame -L "/<\/body>/",+2 hello.html
结果:
^7b1558c index.html (Travis Swicegood 2008-09-21 14:20:21 -0500 12) </body>
^7b1558c index.html (Travis Swicegood 2008-09-21 14:20:21 -0500 13) </html>
git blame -L "/<\/body>/",-2 4333289e^ -- hello.html 查看文件hello.html在4333289e之前的提交日志
结果: 出错
git blame -L "/<\/body>/",-2 4333289e^ -- index.html 查看文件index.html在4333289e之前的提交日志
结果:
^7b1558c (Travis Swicegood 2008-09-21 14:20:21 -0500 7) <h1>Hello World!</h1>
^7b1558c (Travis Swicegood 2008-09-21 14:20:21 -0500 8) </body>
5.跟踪内容
git blame -M original.txt -M表示告诉命令git blame检测在同一个文件内移动或者复制的代码行
git blame -C -C copy.txt -C -C 表示查看文件之间的复制
git log -C -C -l -p
6.撤销修改
<1>增补提交
git commit -C HEAD -a --amend 告诉git复用指定提交的提交留言,而不是从头再写一个git commit -c HEAD -a --amend 功能同上,不同点:打开编译器
<2>反转提交
撤销已经提交的git revert -n HEAD-n表示告诉git先不要提交,如果不加-n,那么git会立即提交git revert -n 540ecb7反转54ecb7git commit -m "revert 45eaf98 and 540ecb7"反转好该反转的然后再统一的提交
<3>复位
复位版本库到一个特定的版本,它是以提交名称作为参数的,默认是HEAD,^和~都可以使用git reset --soft HEAD--sof参数它使得git暂存所有的因复位带来的差异,但不提交他们。git reset --hard HEAD^--hard参数会从版本库和工作目录树中同时删除提交,并且不可恢复。
7.重新改写历史记录
<1>给历史记录重新排序
git rebase -i HEAD~3git log --pretty=format:"%h %s" HEAD~3..
<2>将多个提交压合成一个提交
git rebase -i 0bb3dfb^
<3>将一个提交分解成多个提交
git rebase -i HEAD~4git log -lgit reset HEAD^git diffgit commit -m "message1" -agit commit -m "message2" -agit rebase --continue
相关推荐
3. **SeeGit**:SeeGit项目将Git的命令行操作转化为直观的图形界面,帮助用户理解复杂的Git历史记录,包括提交、分支、合并、重置等操作。 4. **图形化界面设计**:通过WPF,SeeGit能够实现美观且交互性强的界面,...
《gitVersioner-plugin:从git历史记录中轻松获取版本号》 版本管理是软件开发中的重要环节,尤其是在大型项目和团队协作中。Git作为最流行的分布式版本控制系统,为我们提供了强大的版本控制功能。然而,如何从Git...
Git历史记录,搜索和更多内容(包括git log ) 查看和搜索git日志以及图形和详细信息。 查看文件的先前副本。 查看和搜索历史 查看一个或所有分支的历史记录(git日志) 查看文件的历史记录 查看文件中的行的...
这时,我们可以通过自动化工具来从git历史记录中提取这些信息。 本文将详细介绍如何利用Java开发的一个插件——`passsy-gradle-gitVersioner-plugin-ad218e7`来实现这一目标。这个插件可以帮助我们自动从git提交...
这是一个CLI工具,可用来解析仓库的git历史记录。 例如,如果我使用fcom通过fcom "line.(green|red)" --regex --repo davidrunger/fcom搜索此fcom "line.(green|red)" --regex --repo davidrunger/fcom得到以下...
重写git历史记录。 更快的替代git filter-branch或bfg-repo-cleaner来执行某些重写任务。 它已经在Windows和Linux上进行了测试。 使用此工具,可以用几种不同的方式来重写存储库,例如删除删除文件和文件夹,删除...
重命名您的文件以保留 git 历史记录。 每当您在使用$ git mv时需要变基或撤消 git 提交时,历史都会恢复。 此实用程序将允许您将文件转换回原始名称,然后再转换回新名称,以便git保留其历史记录 代码在内部执行 _...
根据git历史记录轻松提取文件日期,还可以选择将其缓存在易于解析的JSON文件中。 我之所以制作此工具,是因为在尝试建立自动化的静态站点部署时,我意识到了两个重要事实: Git不保留操作系统时间戳( git clone...
是一个Visual Studio扩展,将更多的git工具集成到Visual Studio 2013/2015/2017中,包括git更改窗口,图形化git历史记录查看器以及用于启动Git Bash,Git扩展和TortoiseGit的菜单。 支持新的Visual Studio 2019扩展...
基于git历史记录替换或添加createdAt和updatedAt日期的nuxt-content挂钩。 :information: 还有一个,可以执行相同的操作,并且使用起来可能更干净。 安装 # npm $ npm install nuxt-content-hooks-git # Yarn $ ...
将git历史记录索引到Solr存储库中。 将提交的内容(文件已更改等)表示为嵌套文档。 经过Solr 4.9测试。 受和启发。 通过从Solr发行版的示例目录运行java -Dsolr.solr.home = <project> / solr -jar start.jar来...
@ nuxt / content的附加模块,基于git历史记录替换或添加createdAt和updatedAt日期。 安装 # npm $ npm install nuxt-content-git # Yarn $ yarn add nuxt-content-git 用法 将模块添加到@nuxt/content之前的nuxt....
一个方便的花花公子工具,可通过其GIT历史记录快速浏览项目的状态 安装 将此行添加到您的应用程序的Gemfile中: gem 'git-wayback-machine' 然后执行: $ bundle 或将其自己安装为: $ gem install git-...
➤AWS中断这是一个非官方的存储库,提供了云计算平台停机的Git历史记录。如何使用访问文件的。学分数据可能归AWS拥有,而不是其他所有。 这个项目是受启发复制自。 Simon在上撰写了有关如何构建该项目,如果您需要更...
基于git历史记录为Helm Charts创建更改日志helm-changelog基于git历史记录为Helm Charts创建更改日志。 该应用程序基于以下假设:舵图在第一次提交时释放,其中Chart.yaml文件中的版本号被颠簸。 所有后续的提交都被...
1. **使用本地Git历史记录**:IntelliJ IDEA内置了查看本地Git历史的功能。当你发现自己的代码被意外覆盖或者丢失时,可以通过`VCS` -> `Git` -> `Show History`(或使用快捷键)来查看文件的历史版本。在历史记录中...
LeetCode配置文件Git历史记录目的我的LeetCode进度的Github历史使用权api 历史技术Github动作(每20分钟刮一次) Github Pages(托管json) Node + Axios + Puppeteer(网络抓取工具) Bash(更新json)
查询 Git 历史记录是理解项目演变过程的关键。除了 `git log`,还可以用 `git diff` 查看两个提交之间的差异,甚至逐行查看代码变化。`git blame` 命令则可以帮助追踪每一行代码的最后一次修改。如果需要撤销更改,...
该流最终将传递给git-fast-import ,这将使您非常快地重写git存储库历史记录。 这是一种非常灵活的方法,因为您可以非常快速地访问所有提交,并且可以执行复杂的操作,例如重命名文件/文件夹,排除提交,更改时间,...