由于法律問題,我需要在兩個遙遠的提交(2 年的開發)之間獲取所有新的代碼檔案。我只需要全新的檔案,不需要更改現有檔案。我正在使用 Fork,我可以看到所有新檔案,但我需要將它們全部提取到檔案夾中,我不知道該怎么做。如何使用 git 命令執行此操作?
uj5u.com熱心網友回復:
https://superuser.com/questions/117626/find-recently-added-files-with-git
我能想到的其他方式,沒有任何 git 魔法:
簽出提交 A,將您的專案復制到某個檔案夾。簽出提交 B.
現在找到 B 中存在但 A 中不存在的檔案。這些檔案是從 A 開始添加的。
uj5u.com熱心網友回復:
列出commitB與以下相關的所有新檔案commitA:
git diff --name-only --no-renames --diff-filter=A <commitA> <commitB>
從這些中制作一個 tar 存檔:
# the active commit must be commitB,
# 'git status' must indicate a clean worktree (no changes to any versioned files)
git diff --name-only ... | xargs tar -cf newfiles.tar
# if you want it gzipped :
git diff --name-only ... | xargs tar -czf newfiles.tgz
uj5u.com熱心網友回復:
使用軟 git 重置到最早的提交git reset HEAD~<number of commits to go back>
這將重置所有更改并使代碼庫最早提交。您應該能夠看到所有更改,包括對現有檔案和新檔案的修改。
現在做一個git checkout .,這將洗掉對該提交和以后提交時存在的檔案的所有更改。您將只剩下最早提交時不存在的檔案。
此外,如果您還想洗掉這些新檔案,則必須執行git clean -f ..
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/504738.html
標籤:混帐
下一篇:應用差異,使用給定的策略
