亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

git update-index - 在目錄上保持不變

git update-index - 在目錄上保持不變

Git
喵喔喔 2019-08-30 16:06:12
git 1.7.12我想將給定目錄下的所有文件標記為假設未更改。1)git update-index --assume-unchaged dir/給出“忽略路徑”。2)git update-index --assume-unchaged dir/*快速失敗,因為它會遇到未被跟蹤的文件,因此它給出“致命:無法標記文件”并退出。3)嘗試生成要標記的文件列表。  cd進入所需目錄然后運行git ls-files | tr '\n' ' ' | git update-index --assume-unchanged。這不會產生任何錯誤消息,但不會成功標記文件。命令的第一部分git ls-files | tr '\n' ' '正確生成了我要標記的所有文件的空格分隔列表。如果我將該命令的輸出復制并粘貼到命令行,則該git update-index命令有效。什么不使用管道?不,我添加dir到.gitignore 是不夠的。我需要將這些文件放在存儲庫中,但是需要在本地進行不需要的更改,以便用戶可以進行拉取。
查看完整描述

3 回答

?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

git update-index 想要在其命令行上使用文件名,而不是在其標準輸入上。


步驟1:

cd 進入您要假設的文件夾不變


第2步:

你可以這樣做:


git update-index --assume-unchanged $(git ls-files | tr '\n' ' ')

要么


git ls-files | tr '\n' ' ' | xargs git update-index --assume-unchanged

雖然,無論哪種情況,帶空格的文件名都會有問題。如果你有這些,你可以使用這個:


git ls-files -z | xargs -0 git update-index --assume-unchanged

編輯:納入來自@MatthewScharley的輸入git ls-files -z。


Windows命令

注意:如果您使用的是Windows,請使用Git Bash運行這些命令


查看完整回答
反對 回復 2019-08-30
?
慕桂英3389331

TA貢獻2036條經驗 獲得超8個贊

find來自GNU Findutils 的命令有一個-exec選項可以消除大部分使用麻煩xargs,雖然它的語法有點特殊。但它確實與帶有空格的文件名完美匹配。


這個命令將讓git假設所列目錄中和下面的所有文件都保持不變:


find path/to/dir -type f -exec git update-index --assume-unchanged '{}' \;

查找接受每個參數,-exec直到;(你必須逃脫,以免你的shell吃掉它)并為找到的每個文件運行一次,同時用{}找到的文件名替換(再次,單引號,這樣你的shell不會吃它)。


使用find匹配條件(最大遞歸深度,匹配是文件還是目錄,文件名是否與表達式匹配),-exec你可以做各種有力的事情。


不確定該find命令的其他實現。因人而異。


查看完整回答
反對 回復 2019-08-30
?
互換的青春

TA貢獻1797條經驗 獲得超6個贊

添加目錄名稱.git/info/exclude。這適用于未跟蹤的文件。


查看完整回答
反對 回復 2019-08-30
  • 3 回答
  • 0 關注
  • 1701 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號