Yanıtlar:
Gitignore'a göre Git'in düşündüğü farklı "görmezden gelen model kaynaklarında" bir öncelik sırası olduğunu unutmayın:
$GIT_DIR/info/exclude.core.excludesfile.Son ikisi sorununuz için bir çözüm olabilir, ancak:
(Ayrıca bu SO sorusuna bakın )
Diğer iki çözüm dizinin ( git update-index) güncellenmesini içerir :
git update-index --assume-unchanged: bkz. " Git: bir dosyayı yalnızca yerel depoda izleyin ve uzak depoda saklayın ". git update-index --assume-unchangeddizinde ". --no-assume-unchangeEfekti tersine çevirmek için kullanın : Bkz. " Şu anda korunan bir dosya mümkün mü ?git addassume-unchanged ".Ancak, başka bir şubeyi ödünç aldığınızda veya siz git pull, bu "yoksay" durumu sıfırlanabilir. Dolayısıyla diğer seçenek:
git update-index --skip-worktree; görmek:
İkisi arasındaki fark " Git - Arasındaki Fark ' assume-unchanged' ve ' skip-worktree' " bölümünde açıklanmıştır .
update-index --skip-work-tree. Cevabı, bu iki update-indexkomutu örnekleyen eski cevaplarıma bazı bağlantılar eklemek için düzenledim .
Değiştirebiliyorsanız .git/info/exclude, aynı kuralları oraya da koyabilirsiniz. Ancak bu dosya yalnızca yerel deponuzdadır.
.git
.gitklasörü aslında parent_repo/.git/modules/submodule_name. Eğer düzenleme olur Yaniparent_repo/.git/modules/submodule_name/info/exclude
GIT'ye hangi dosyaların göz ardı edileceğini söylemenin üç yolu vardır:
.gitignore Dosyalar$GIT_DIR/.git/info/excludecore.excludesfileAyar aracılığıyla gösterilen dosyalarSon iki nokta sorununuzu çözebilir.
Daha fazla bilgi için gitignore (5) bakın .
Depoda sadece bazı yerel dosyalara sahip olmak istiyorsanız ve alt dizin konumu esnekse, dosyalarınızı içine koyabilir tracked_dir1/tracked_dir2/untracked_dir/ve ardından aşağıdakiler tracked_dir1/tracked_dir2/untracked_dir/.gitignoregibi içeriğe sahip bir ekleyebilirsiniz :
*
yani
$ cat > tracked_dir1/tracked_dir2/untracked_dir/.gitignore
*
<Ctrl+D>
Ben de benzer durumlarda bulundum, bu yüzden bahsettiğim görmediğim tercih ettiğim çözümü ekliyorum. git update-index --assume-unchangedBu durumda sorun, izlenmemiş bir dosya için bunu yapamamanızdır. Dedin
Depomun .gitignore'unu değiştiremiyorum.
Ne demek istediğinizi, herhangi bir değişikliği .gitignorebaşlangıç noktasına itemeyeceğiniz olduğunu varsayacağım . Eğer durum buysa, yapabileceğiniz şey izlenmeyen dosyayı yerel dosyanıza eklemek .gitignore, o zaman yaptığınız git update-index --assume-unchanged .gitignoredeğişikliğin .gitignoreasla itilmemesi için yapın. Artık izlenmeyen (muhtemelen) dosyayı görmezden geliyorsunuz ve uzak .gitignoredosyayı etkilemiyorsunuz .
İzlenen dosyalardaki yerel değişiklikleri göz ardı edin:
git update-index --assume-unchanged my-file.php
İzlenen dosyalardaki yerel değişiklikleri göz ardı edin:
git update-index --no-assume-unchanged my-file.php
kaynak: git help update-index
--[no-]assume-unchanged
...
This option can be also used as a coarse file-level mechanism to ignore uncommitted changes in tracked
files (akin to what .gitignore does for untracked files). Git will fail (gracefully) in case it needs to
modify this file in the index e.g. when merging in a commit; thus, in case the assumed-untracked file is
changed upstream, you will need to handle the situation manually.
Bunun yerine projede birini değiştirerek küresel gitignore yöntemini kullanabilirsiniz https://help.github.com/articles/ignoring-files/#create-a-global-gitignore
update-index --assume-unchanged@See stackoverflow.com/a/25253144/292408