Ubuntu ve Debian altında, daha sonra bir ödeme yapmayı denediğimde, son taahhüt edilen dosyalar yürütme bitini ayarlıyorlar. Oldukça garip ve beni deli ediyor:
$ ls -l file
-rw-r--r-- ... file
# on branch master:
$ git commit -m 'mode is 644' file
[master 0123456] mode is 644
1 files changed, 1 insertions(+), 1 deletions(-)
# All ok
$ git checkout dev-branch
Switched to branch 'dev-branch'
# Seemingly all ok, but file now has the exec bit set
$ git merge master
Updating 6543210..0123456
error: Your local changes to 'file' would be overwritten by merge. Aborting.
Please, commit your changes or stash them before you can merge.
# Oops...
$ ls -l file
-rwxr-xr-x ... file
Kimse bir fikir var, ne zaman ve neden icra biti kayar? core.filemode
olarak ayarlanmıştır true
.
Ben bir şekilde önemli ise, şube anahtarlama sırasında vim içinde dosya var.
Zeyilname 1: İzinlerin bertaraf edildiği ödeme kasasıdır. Oyunu tekrar tekrar oynayabilirim:
$ git br
* master
dev-branch
$ git diff
diff --git a/file b/file
old mode 100644
new mode 100755
$ chmod 644 file
$ git diff
$ git checkout dev-branch
$ git diff
diff --git a/file b/file
old mode 100644
new mode 100755
$ chmod 644 file
$ git diff
$ git checkout master
$ git diff
diff --git a/file b/file
old mode 100644
new mode 100755
# ...and so on ad inf.
Zeyilname 2: Bu arada, bu depodaki her dosya için taahhüt ederim. Başarılı bir taahhüdün ardından izinleri kesmeden şubeleri değiştiremem.
git-log
gösterileri ne kombinasyonu kullanıcılar hiçbir çıkış, master
, dev-branch
veya HEAD
(? garip, verilmemelidir komut son gelen mesajı işlemek baskı değildir master
?)