| 知乎专栏 | 
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%ai) %C(bold blue)<%an>%Creset' --abbrev-commit
使用git命令计算文件的 sha-1 值
neo@MacBook-Pro ~ % echo 'test content' | git hash-object --stdin d670460b4b4aece5915caf5c68d12f560a9fe3e4
neo@MacBook-Pro-Neo ~/workspace/devops % git log -- setup.py
diff 风格
			
neo@MacBook-Pro-Neo ~/workspace/devops % git log -p -- setup.py
commit abe282e68ad81e0e72cb8c700ba5c4db87c647a4
Author: neo <netkiller@msn.com>
Date:   Thu Sep 30 14:07:02 2021 +0800
    voice
diff --git a/setup.py b/setup.py
deleted file mode 100644
index 08f9d08..0000000
--- a/setup.py
+++ /dev/null
@@ -1,59 +0,0 @@
-import os,sys
-from setuptools import setup,find_packages
-sys.path.insert(0, os.path.abspath('lib'))
-from netkiller import __version__, __author__
-
-with open("README.md", "r") as fh:
-  long_description = fh.read()
-
-setup(
-       name="netkiller-devops",
-       version="0.2.4",			
			
		
		oneline 风格
neo@MacBook-Pro-Neo ~/workspace/devops % git log --pretty=oneline -- setup.py abe282e68ad81e0e72cb8c700ba5c4db87c647a4 voice fda886b0ae1526020c366cea2b747b3ceda18ff6 语音通知 cb2ca23a81b2384b79d7b32bb2e84782bb80edaf 企业微信通知 ac8e573123142a2856d44d13307dd4c46b134ceb fixed logging bug 1c609b9242c8f404ec4bba207dd8c9d836e591d4 docker 增加日志功能
git log --pretty=oneline -- .
git log --oneline -- path/to/folder git log --name-status -- path/to/folder git log --pretty=oneline -- path/to/folder git log -p -- path/to/folder
			
Neo-iMac:test.netkiller.cn neo$ git log --name-status
commit 120f1bb6ff391c6b9b24899804f0292370873485 (HEAD -> main)
Author: 陈景峰 <neo@netkiller.cn>
Date:   Thu Dec 2 04:10:16 2021 +0000
    Initial commit
A       README.md
Neo-iMac:test.netkiller.cn neo$ git log --name-status --oneline
120f1bb (HEAD -> main) Initial commit
A       README.md			
			
		
		
		Neo-iMac:www.netkiller.cn neo$ git log --name-status --oneline --graph * 7ca7fb7 (HEAD -> main, origin/main, origin/HEAD) sign | M README.md * ba9a9a6 更新.gitlab-ci.yml文件 | M .gitlab-ci.yml * 8af932e 更新.gitlab-ci.yml文件 | M .gitlab-ci.yml * 6fe467b Update app.js | M app.js * a019da0 更新.gitlab-ci.yml文件 | M .gitlab-ci.yml * 65afb8b 更新.gitlab-ci.yml文件 | M .gitlab-ci.yml * 061c78d 更新.gitlab-ci.yml文件 | A .gitlab-ci.yml * 149daf5 Add new file | A app.js * e927196 更新README.md A README.md
格式参数
		
%H: 标准长度 commit hash
%h: 缩短的 commit hash
%T: tree hash
%t: 缩短的 tree hash
%P: parent hashes
%p: 缩短的 parent hashes
%an: 作者名字
%aN: mailmap的作者名字 (.mailmap对应,详情参照git-shortlog(1)或者git-blame(1))
%ae: 作者邮箱
%aE: 作者邮箱 (.mailmap对应,详情参照git-shortlog(1)或者git-blame(1))
%ad: 日期 (--date= 制定的格式)
%aD: 日期, RFC2822格式
%ar: 日期, 相对格式(1 day ago)
%at: 日期, UNIX timestamp
%ai: 日期, ISO 8601 格式
%cn: 提交者名字
%cN: 提交者名字 (.mailmap对应,详情参照git-shortlog(1)或者git-blame(1))
%ce: 提交者 email
%cE: 提交者 email (.mailmap对应,详情参照git-shortlog(1)或者git-blame(1))
%cd: 提交日期 (--date= 制定的格式)
%cD: 提交日期, RFC2822格式
%cr: 提交日期, 相对格式(1 day ago)
%ct: 提交日期, UNIX timestamp
%ci: 提交日期, ISO 8601 格式
%d: ref名称
%e: encoding
%s: commit信息标题
%f: sanitized subject line, suitable for a filename
%b: commit信息内容
%N: commit notes
%gD: reflog selector, e.g., refs/stash@{1}
%gd: shortened reflog selector, e.g., stash@{1}
%gs: reflog subject
%Cred: 切换到红色
%Cgreen: 切换到绿色
%Cblue: 切换到蓝色
%Creset: 重设颜色
%C(...): 制定颜色, as described in color.branch.* config option
%m: left, right or boundary mark
%n: 换行
%%: a raw %
%x00: print a byte from a hex code
%w([[,[,]]]): switch line wrapping, like the -w option of git-shortlog(1)		
		
		
		命令演示
git log --since="2023-02-11" --no-merges --pretty=format:"%h %an %ai %s"
		
neo@Neo-Mac-mini-M4 ~/G/python (master)> git log --diff-filter=D --summary | grep delete
            deleted:    "Netkiller Python \346\211\213\346\234\255.docx"
            deleted:    crawler/__pycache__/requests.cpython-39.pyc
 delete mode 100644 "Netkiller Python \346\211\213\346\234\255.docx"
 delete mode 100644 crawler/__pycache__/requests.cpython-39.pyc
 delete mode 100644 crawler/requests-get.py
 delete mode 100644 intesting/99.py
 delete mode 100644 intesting/love.py
 delete mode 100644 intesting/test.py
 delete mode 100644 netkiller-2021-02-16.log
 delete mode 100644 new.docx
 delete mode 100644 numpy/test.py
 delete mode 100644 pandas/demo/html.py
 delete mode 100644 pandas/method/date.py
 delete mode 100644 pyaudio/client.py
 delete mode 100644 pyaudio/server.py
 delete mode 100644 single.py
 delete mode 100644 test.xlsx
 delete mode 100644 type/str.py
            deleted:    pandas/demo/doc.html
 delete mode 100644 pandas/demo/doc.html
 delete mode 100644 "pandas/\345\233\242\350\264\255.xlsx"
 delete mode 100644 netkiller.pid
 delete mode 100644 pandas/dataframe/demo1.py
 delete mode 100644 terminal/progress-demo.py		
		
		
	
		
neo@Neo-Mac-mini-M4 ~/G/python (master) [SIGINT]> git log --all -- pandas/demo/html.py
commit 7af7df5fce170692b6ad35e0c8e52300c4e96bc0 (HEAD -> master, origin/master, origin/HEAD)
Author: Neo Chan <netkiller@msn.com>
Date:   Tue Dec 3 00:37:45 2024 +0800
            deleted:    "Netkiller Python \346\211\213\346\234\255.docx"
            deleted:    crawler/__pycache__/requests.cpython-39.pyc
commit efb002d74f6fd05cc2fdaf1111b431699d4562bf
Author: neo <netkiller@msn.com>
Date:   Thu Apr 4 23:45:54 2024 +0800
            modified:   pandas/demo/html.py
commit bc23e7890c79eac5a79b7d49cb58918dcd22ab40
Author: neo <netkiller@msn.com>
Date:   Thu Mar 14 17:04:01 2024 +0800
            modified:   .gitignore
            modified:   .vscode/settings.json
            modified:   pandas/demo/html.py
commit 16abfa18f09533884e8594d407a767725d75f455
Author: neo <netkiller@msn.com>
Date:   Tue Dec 19 16:43:25 2023 +0800
            modified:   pandas/demo/html.py
commit 758edc1210100b64ea60c34f3f38589d670c3ccc
Author: neo <netkiller@msn.com>
Date:   Tue Sep 5 09:14:20 2023 +0800
            modified:   .vscode/settings.json
            modified:   pandas/demo/html.py
commit 631e5b5be42b392f92b90505213fca9db52415d9
Author: neo <netkiller@msn.com>
Date:   Sat May 27 16:09:39 2023 +0800
            deleted:    pandas/demo/doc.html
            modified:   pandas/demo/html.py		
		
		
	
		
neo@Neo-Mac-mini-M4 ~/G/python (master) [1]> git log --all --full-history -- pandas/demo/html.py
commit 7af7df5fce170692b6ad35e0c8e52300c4e96bc0 (HEAD -> master, origin/master, origin/HEAD)
Author: Neo Chan <netkiller@msn.com>
Date:   Tue Dec 3 00:37:45 2024 +0800
            deleted:    "Netkiller Python \346\211\213\346\234\255.docx"
            deleted:    crawler/__pycache__/requests.cpython-39.pyc
commit efb002d74f6fd05cc2fdaf1111b431699d4562bf
Author: neo <netkiller@msn.com>
Date:   Thu Apr 4 23:45:54 2024 +0800
            modified:   pandas/demo/html.py
commit bc23e7890c79eac5a79b7d49cb58918dcd22ab40
Author: neo <netkiller@msn.com>
Date:   Thu Mar 14 17:04:01 2024 +0800
            modified:   .gitignore
            modified:   .vscode/settings.json
            modified:   pandas/demo/html.py
commit 16abfa18f09533884e8594d407a767725d75f455
Author: neo <netkiller@msn.com>
Date:   Tue Dec 19 16:43:25 2023 +0800
            modified:   pandas/demo/html.py
commit 758edc1210100b64ea60c34f3f38589d670c3ccc
Author: neo <netkiller@msn.com>
Date:   Tue Sep 5 09:14:20 2023 +0800
            modified:   .vscode/settings.json
            modified:   pandas/demo/html.py
commit 631e5b5be42b392f92b90505213fca9db52415d9
Author: neo <netkiller@msn.com>
Date:   Sat May 27 16:09:39 2023 +0800
            deleted:    pandas/demo/doc.html
            modified:   pandas/demo/html.py		
		
		
	reflog 类似我们软件中的 Undo/Redo ,就像使用 CMD+Z / CMD + SHIFT +Z 一样进行版本的切换和回滚。reflog 日志是保存在本地的,并不会 push 到远程,这就是他与 git log 的区别。
git reflog 与 git log的区别,git log 可以显示所有提交过的版本信息,但不包括已经被删除的 commit 记录和 reset 的操作
git reflog 可以是显示所有的操作记录,包括提交,回退的操作。一般用来找出操作记录中的版本号,进行回退,常用于恢复本地的错误操作。
git reflog 用法
		
Neo-iMac:test.netkiller.cn neo$ git reflog
120f1bb (HEAD -> main) HEAD@{0}: reset: moving to 120f1bb
9fcccf0 HEAD@{1}: commit: add tmp string
de5ca5d (origin/main, origin/HEAD) HEAD@{2}: reset: moving to HEAD
de5ca5d (origin/main, origin/HEAD) HEAD@{3}: pull: Fast-forward
120f1bb (HEAD -> main) HEAD@{4}: clone: from 192.168.30.5:netkiller.cn/test.netkiller.cn.git
		
		
		回滚到 120f1bb
Neo-iMac:test.netkiller.cn neo$ git reset --hard 120f1bb HEAD is now at 120f1bb Initial commit