我正在做一個名為 XXX 的專案。我想將XXX 的每個實體替換為 YYY。(我希望替換所有檔案中的字串,并將包含字串 XXX 的檔案/目錄重命名為 YYY)。
我做了什么,我被困在哪里:
git checkout -b renameFix
// in zsh
sed -i -- 's/XXX/YYY/g' **/*(D.) // replace
zmv '(**/)(*XXX*)' '$1${2//XXX/YYY}' // rename files and dirs
現在,當我運行 git status 時,我收到“致命:未知索引條目格式 0x2f700000”錯誤。
我可以使用其他方法嗎?
uj5u.com熱心網友回復:
您的問題是您的 glob ( **/*(D.)) 遍歷.git目錄。
您可以洗掉(D.)量詞,以避免通配“隱藏”檔案(以句點開頭的檔案)或添加另一個量詞,它會過濾掉以 git 開頭的匹配檔案。
像這樣的東西可能會起作用:
ignore_git() { ! [[ $REPLY =~ "^.git" ]] }
printf '%s\n' **/*(D. ignore_git)
我添加了,printf以便您可以驗證是否列出了所需的檔案。
您還可以查看git ls-files哪些可以生成 git 跟蹤的檔案串列。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/431873.html
上一篇:gitlfs無法丟棄檔案更改(遇到應該是指標的檔案)
下一篇:使功能分支成為新的發展
