1
$ git --version:  
git version 1.7.9.5

$ cat /etc/issue:  
Ubuntu 12.04.3 LTS \n \l

$cat .gitignore  
**/._*  
**/*.swp  
**/.DS_Store  
log/  
bak/  

$ git status  
On branch master  
Changes not staged for commit:  
(use "git add <file>..." to update what will be committed)  
(use "git checkout -- <file>..." to discard changes in working directory)  

modified:   html/conf/._conf.php  
modified:   html/conf/conf.php  

no changes added to commit (use "git add" and/or "git commit -a")  

上記のように、.gitignore に **/._* を含めました。
最初に .gitignore を作成し、次に「git init」、最後に「git add .」を作成しました。すべてをコミットしてから、html/conf/conf.php を変更しました。「git status」の出力でわかるように、._conf.php は無視されません。誰が私を助けてくれますか? 私は非常に多くのチュートリアルを読みましたが、明らかに何かが欠けています。

「git add」を行います。無視リストを無視しますか? もしそうなら、それを避けるために私は何をしなければなりませんか?* /._に一致する新しく作成されたファイルは正しく無視されます。

「git update-index --assume-unchanged **/._*」を試すと、
致命的な結果になります: Unable to mark file doku/._blabla.txt

アイデアが尽きた…

前もって感謝します!

4

1 に答える 1

2

.gitignore新しいファイルのみを考慮しています。

ファイルが既に Git によって追跡されており、その後変更された場合、変更は でステージングされる必要がありますgit add .

これらのファイルのステータスを「変更されていないと仮定する」に設定するには、次のようにします。

git update-index --assume-unchanged <file>

http://gitready.com/intermediate/2009/02/18/temporarily-ignoring-files.html

于 2013-11-11T14:49:45.107 に答える