Farklı dallarda iki farklı dosyam var. Onları tek bir komutta nasıl dağıtabilirim?
Gibi bir şey
# git diff branch1/foo.txt branch2/foo-another.txt
Diğer dosyayı kontrol, fark ve geri yükleme, ama bu oldukça kirli bir çözüm.
Farklı dallarda iki farklı dosyam var. Onları tek bir komutta nasıl dağıtabilirim?
Gibi bir şey
# git diff branch1/foo.txt branch2/foo-another.txt
Diğer dosyayı kontrol, fark ve geri yükleme, ama bu oldukça kirli bir çözüm.
Yanıtlar:
git diff branch1:full/path/to/foo.txt branch2:full/path/to/foo-another.txt
Göreli yolları da kullanabilirsiniz:
git diff branch1:./relative/path/to/foo.txt branch2:./relative/path/to/foo-another.txt
git help diff
. Bu arada, bunların iki nokta üst üste işareti olmak zorunda değiller, ancak herhangi bir taahhüt başvurusu olabilirler (örneğin SHA-1 değerleri).
git difftool
ve bırakın branch2:
ve bu, geçerli çalışma ağacındaki bir dosyayı düzenlemenize olanak tanır (değişiklikleri getirmek için branch1
)
İki farklı daldan dosyaları karşılaştırmanın birçok yolu vardır. Örneğin:
Ad aynı veya farklıysa:
git diff branch1:file branch2:file
Misal:
git diff branch1:full/path/to/foo.txt branch2:full/path/to/foo-another.txt
Yalnızca ad aynı ise ve geçerli çalışma dizininizi bir dalla karşılaştırmak istiyorsanız:
git diff ..someBranch path/to/file
Misal:
git diff ..branch2 full/path/to/foo.txt
Bu örnekte, dosyayı gerçek dalınızdan ana daldaki dosyayla karşılaştırıyorsunuz.
Bu yanıtı kontrol edebilirsiniz:
Konu dışı cevap - yorumlara bakın
Sadece eklemek için çok basit bir sözdizimi buluyorum:
git diff <branch1> <branch2> <filepath>
Ayrıca aşağıdaki gibi göreceli referanslarla çalışır:
# compare the previous committed state from HEAD with the state branch1 was 3 commits ago
git diff HEAD^ <branch1>~3 <filepath>
git diff
Uygulanacak bir başlangıç ve aralık belirleyebilirsiniz. Aralık, ..
gösterimle belirtilir .
branch1=somebranch
branch2=someotherbranch
git diff ${branch1}..${branch2} -- file_path