[英]git How to list all file and directory renames between two commits
我正在編寫一個使用 git 的腳本。它需要知道所有重命名的目錄和文件的舊文件路徑和新文件路徑。
我想做的事的例子: git diff --find-renames-only someGitHash someGitHash
然后我想看到一個像這樣的列表:
rename old/path/old-file-name.extension->new/path/new-file-name.extension
要么
rename from source/README.md
rename to documentation/README.md
或類似這樣的東西,只要它具有舊文件名和舊目錄路徑以及新文件名和新目錄路徑即可。
到目前為止,我四處亂逛並到處搜索,我能找到的最接近的東西是git diff --find-renames
git diff --find-renames
給了我想要的數據,但每個文件的數據太多了。 這絕對不是我想要處理和解析的東西。 我正在使用的一些 git 存儲庫可能有數千個文件/文件夾重命名......
例子:
...tons more data that I do not want to parse through
rename from source/README.md
rename to documentation/README.md
...tons more data including diffs of files before and after...
this pattern continued for each file...
如何在沒有額外數據的情況下列出兩次 git 提交之間的所有文件和目錄重命名?
任何幫助將不勝感激,謝謝!
git log --name-status <start_commit>..<end_commit> | grep ^R
這將向您顯示從最新到最舊的重命名歷史。
output 看起來像這樣:
R100 the-5-min/.watchmanconfig the-10-min/.watchmanconfig
R100 the-5-min/App.tsx the-10-min/App.tsx
R085 the-5-min/app.json the-10-min/app.json
R100 the-5-min/assets/examples/accordion.png the-10-min/assets/examples/accordion.png
R100 the-5-min/assets/examples/angular-gradient.png the-10-min/assets/examples/angular-gradient.png
第一個字母是變化的類型(不同變化類型的細節見--diff-filter ),數字是提交之間的相似程度。 列出的第一個文件名是舊文件名,第二個文件名是新文件名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.