Git'in dosya modu (chmod) de─či┼čikliklerini yoksaymas─▒n─▒ nas─▒l sa─člayabilirim?


Al─▒nan cevaba git


chmod Geli┼čtirme s─▒ras─▒nda dosyalar─▒n modunu 777 ile de─či┼čtirmek zorunda oldu─čum ancak ana depoda de─či┼čmemesi gereken bir projem var .

Git se├žti chmod -R 777 . ve t├╝m dosyalar─▒ de─či┼čtirildi olarak i┼čaretler. Git'in dosyalarda yap─▒lan mod de─či┼čikliklerini yoksaymas─▒n─▒ sa─člaman─▒n bir yolu var m─▒?


2166









Cevap say─▒s─▒n─▒ say: 11






Deneyin:

 git config core.fileMode false
 

Kaynaktan git-yap─▒land─▒rma (1) :

 core.fileMode
    Tells Git if the executable bit of files in the working tree
    is to be honored.

    Some filesystems lose the executable bit when a file that is
    marked as executable is checked out, or checks out a
    non-executable file with executable bit on. git-clone(1)
    or git-init(1) probe the filesystem to see if it handles the 
    executable bit correctly and this variable is automatically
    set as necessary.

    A repository, however, may be on a filesystem that handles
    the filemode correctly, and this variable is set to true when
    created, but later may be made accessible from another
    environment that loses the filemode (e.g. exporting ext4
    via CIFS mount, visiting a Cygwin created repository with Git
    for Windows or Eclipse). In such a case it may be necessary
    to set this variable to false. See git-update-index(1).

    The default is true (when core.filemode is not specified
    in the config file).
 

-c Bayrak tek seferlik komutlar i├žin bu se├žene─či ayarlamak i├žin kullan─▒labilir:

 git -c core.fileMode=false diff
 

Ve --global bayrak oturum a├žan kullan─▒c─▒ i├žin varsay─▒lan davran─▒┼č─▒ yapacakt─▒r.

 git config --global core.fileMode false
 

Genel ayardaki de─či┼čiklikler mevcut depolara uygulanmaz. Ayr─▒ca, git clone ve git init a├ž─▒k bir ┼čekilde ayarlanabilir core.fileMode i├žin true de tart─▒┼č─▒ld─▒─č─▒ gibi repo config klon ├╝zerinde ge├žersiz k─▒l─▒nan yerel Git k├╝resel core.fileMode YANL─▒┼×

Uyar─▒

core.fileMode en iyi uygulama de─čildir ve dikkatli kullan─▒lmal─▒d─▒r. Bu ayar yaln─▒zca ├žal─▒┼čt─▒r─▒labilir mod bitini kapsar ve asla okuma / yazma bitlerini i├žermez. Pek ├žok durumda, bu ayara ihtiyac─▒n oldu─čunu d├╝┼č├╝n├╝yorsunuz, ├ž├╝nk├╝ chmod -R 777 t├╝m dosyalar─▒n─▒z─▒ ├žal─▒┼čt─▒r─▒labilir hale getirir. Ancak ├žo─ču projede ├žo─ču dosya g├╝venlik nedeniyle ├žal─▒┼čt─▒r─▒lamaz ve ├žal─▒┼čt─▒r─▒lmamal─▒d─▒r .

Bu t├╝r bir durumu ├ž├Âzmenin do─čru yolu, klas├Âr ve dosya iznini a┼ča─č─▒daki gibi ayr─▒ ayr─▒ ele almakt─▒r:

 find . -type d -exec chmod a+rwx {} \; # Make folders traversable and read/write
find . -type f -exec chmod a+rw {} \;  # Make files read/write
 

Bunu yaparsan─▒z, core.fileMode nadir bulunan ortamlar d─▒┼č─▒nda asla kullanman─▒z gerekmez .


3594







├žal─▒┼čma a─čac─▒nda mod de─či┼čikli─čini geri al:

 git diff --summary | grep --color 'mode change 100755 => 100644' | cut -d' ' -f7- | xargs -d'\n' chmod +x
git diff --summary | grep --color 'mode change 100644 => 100755' | cut -d' ' -f7- | xargs -d'\n' chmod -x
 

Veya mingw-git'te

 git diff --summary | grep  'mode change 100755 => 100644' | cut -d' ' -f7- | xargs -e'\n' chmod +x
git diff --summary | grep  'mode change 100644 => 100755' | cut -d' ' -f7- | xargs -e'\n' chmod -x
 

266


2010-01-18





Bu se├žene─či t├╝m depolar─▒n─▒z i├žin ayarlamak istiyorsan─▒z, bu se├žene─či kullan─▒n --global .

 git config --global core.filemode false
 

Bu i┼če yaramazsa, muhtemelen git'in daha yeni bir s├╝r├╝m├╝n├╝ kullan─▒yorsunuzdur, bu nedenle --add se├žene─či deneyin .

 git config --add --global core.filemode false
 

--Global se├žene─či olmadan ├žal─▒┼čt─▒r─▒rsan─▒z ve ├žal─▒┼čma dizininiz bir repo de─čilse,

 error: could not lock config file .git/config: No such file or directory
 

128







E─čer

 git config --global core.filemode false
 

sizin i├žin ├žal─▒┼čm─▒yor, el ile yap─▒n:

 cd into yourLovelyProject folder
 

.git klas├Âr├╝ne cd:

 cd .git
 

config dosyas─▒n─▒ d├╝zenleyin:

 nano config
 

yanl─▒┼ča do─čru do─čru de─či┼čtirmek

 [core]
        repositoryformatversion = 0
        filemode = true
 

->

 [core]
        repositoryformatversion = 0
        filemode = false
 

kaydet, ├ž─▒k, ├╝st klas├Âre git:

 cd ..
 

Git yeniden dizmek

 git init
 

bitirdiniz!


77







Greg Hewgill yan─▒t─▒na ekleme ( core.fileMode config de─či┼čkenini kullanma ):

Sen kullanabilirsiniz --chmod=(-|+)x se├žene─či git g├╝ncelleme-endeks -a taahh├╝t git" siz "taahh├╝t Git" kullan─▒rsak al─▒nmay─▒ yerden endekste y├╝r├╝tme izinleri de─či┼čtirmek i├žin ( "git add" d├╝┼č├╝k seviyeli versiyon) (ve ").


51







Global olarak yap─▒land─▒rabilirsiniz:

git config --global core.filemode false

Yukar─▒dakiler sizin i├žin i┼če yaramazsa, bunun nedeni yerel yap─▒land─▒rman─▒z─▒n genel yap─▒land─▒rmay─▒ ge├žersiz k─▒lmas─▒ olabilir.

Genel yap─▒land─▒rman─▒n ge├žerli olmas─▒ i├žin yerel yap─▒land─▒rman─▒z─▒ kald─▒r─▒n:

git config --unset core.filemode

Alternatif olarak, yerel yap─▒land─▒rman─▒z─▒ do─čru de─čere de─či┼čtirebilirsiniz:

git config core.filemode false


36







E─čer zaten chmod komutunu kulland─▒ysan─▒z , dosya fark─▒n─▒ kontrol edin, ├ľnceki dosya modunu ve ┼ču anki dosya modunu g├Âsterir:

yeni mod: 755

eski mod: 644

A┼ča─č─▒daki komutu kullanarak t├╝m dosyalar─▒n eski modunu ayarla

sudo chmod 644 .

┼×imdi core.fileMode komutunu ya da elle kullanarak config dosyas─▒nda false olarak ayarlay─▒n.

 git config core.fileMode false
 

daha sonra gibi t├╝m dosyalar─▒n izinlerini de─či┼čtirmek i├žin chmod komutunu uygulay─▒n.

 sudo chmod 755 .
 

ve yine core.fileMode de─čerini true olarak ayarlay─▒n.

 git config core.fileMode true
 

En iyi uygulamalar i├žin core.fileMode kodunu daima yanl─▒┼č tutmay─▒n.


21







A┼ča─č─▒daki di─čer ad─▒ tan─▒mlayarak (~ / .gitconfig i├žinde) git komutu ba┼č─▒na fileMode'u ge├žici olarak kolayca devre d─▒┼č─▒ b─▒rakabilirsiniz:

 [alias]
nfm = "!f(){ git -c core.fileMode=false [email protected]; };f"
 

Bu takma ad git komutuna ├Ânceden eklendi─činde, dosya modu de─či┼čiklikleri aksi halde g├Âsterilecek komutlarla g├Âsterilmez. ├ľrne─čin:

 git nfm status
 

17







Filemode'u config dosyalar─▒nda art arda yanl─▒┼č (false) ayarlamak istiyorsan─▒z (alt mod├╝ller dahil): find -name config | xargs sed -i -e 's/filemode = true/filemode = false/'


13







Basit ├ž├Âz├╝m:

Bu Hit Basit komutu (proje Klas├Ârde bu orijinal de─či┼čiklikleri kald─▒rmak olmaz) sadece edecek ... de─či┼čiklikleri kald─▒rmak olmu┼čtu yap─▒l─▒r de─či┼čtin ise proje klas├Âr├╝ izni

komut a┼ča─č─▒dad─▒r:

git config core.fileMode yanl─▒┼č

Neden t├╝m bu gereksiz dosyalar de─či┼čtirildi: ├ž├╝nk├╝ proje klas├Âr izinlerini commend sudo chmod -R 777 ./yourProjectFolder ile de─či┼čtirdiniz.

Yapmad─▒─č─▒n de─či┼čiklikleri ne zaman kontrol edeceksin? git diff dosyaad─▒ kullan─▒l─▒rken a┼ča─č─▒daki gibi

 old mode 100644
new mode 100755
 

2







Bu benim i├žin ├žal─▒┼č─▒yor:

 find . -type f -exec chmod a-x {} \;
 

i┼čletim sisteminize ba─čl─▒ olarak veya ters

 find . -type f -exec chmod a+x {} \;
 

1



─░lgili yay─▒nlar


Git'in izlenen ancak ┼ču an .gitignore'da olan bir dosyay─▒ ÔÇťunutmas─▒n─▒ÔÇŁ nas─▒l sa─člar?

Git Xcode projeleri i├žin dosyay─▒ yoksay

Git i┼čaretinin silinmi┼č ve yeni bir dosya olarak ta┼č─▒nmas─▒ nas─▒l yap─▒l─▒r?

'Git diff' ifadesini yaln─▒zca de─či┼čtirilen dosya adlar─▒n─▒ ve sat─▒r numaralar─▒n─▒ g├Âsterebilir miyim?

Git nas─▒l Ruborin taraf─▒ndan olu┼čturulan .idea dosyalar─▒ yoksaymak yapmak

Git-diff ve git g├╝nl├╝─č├╝n├╝n yeni ve silinen dosyalar─▒ yoksaymas─▒n─▒ nas─▒l sa─člayabilirim?

Git'i .gitignore kullanmadan dosyalar─▒ g├Ârmezden nas─▒l getirirsin?

Git'in gelecekteki revizyonlar─▒ bir dosyaya ald─▒rmamas─▒n─▒ nas─▒l sa─člayabilirim?

Git diff nas─▒l yap─▒l─▒r - varsay─▒lan-bo┼čluk-de─či┼čkeni varsay─▒lan

Git - Birle┼čtirme s─▒ras─▒nda dosyalar─▒ yoksay

Etiketle ilgili di─čer sorular [git]


S├Âzc├╝k i├žermeyen bir ├žizgiyle e┼čle┼čmek i├žin normal ifade

Kodun t├╝m b├Âl├╝mlerini daraltmak i├žin komut?

Bir JavaScript nesnesini nas─▒l g├Âr├╝nt├╝leyebilirim?

Bir form g├Ânderimi gibi JavaScript g├Ânderim iste─či

PHP ┼čifreleri i├žin g├╝venli karma ve tuz

Bir nesnenin t├╝m ge├žerli ├Âzelliklerini ve de─čerlerini yazd─▒rmak i├žin yerle┼čik bir i┼člev var m─▒?

IList <string> veya IEnumerable <string> ├Â─česinden virg├╝lle ayr─▒lm─▒┼č bir liste olu┼čturma

JavaScript'teki statik de─či┼čkenler

─░ki std :: vectors birle┼čtirme

Bu ortamda hi├žbir derleyici bulunmuyor. Belki de bir JDK'dan ziyade JRE ile ├žal─▒┼č─▒yorsunuzdur?