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-unchanged
dizinde ". --no-assume-unchange
Efekti tersine çevirmek için kullanın : Bkz. " Şu anda korunan bir dosya mümkün mü ?git add
assume-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-index
komutu ö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
.git
klasö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/exclude
core.excludesfile
Ayar 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/.gitignore
gibi 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-unchanged
Bu 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 .gitignore
baş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 .gitignore
değişikliğin .gitignore
asla itilmemesi için yapın. Artık izlenmeyen (muhtemelen) dosyayı görmezden geliyorsunuz ve uzak .gitignore
dosyayı 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