Hayır, bu doğru değil. Kullanmakta olduğunuz hangi sürüm kontrol yazılımına bağlı olsa da Git'i seviyorum, bundan bahsedeceğim.
class Foo {
public void printAWittyMessage() {
// TODO: Be witty
}
}
Alice ve Bob hem dosyayı değiştirin: Varsayalım
bir dosya Foo.java var. Alice yapar:
class Foo {
public void printAWittyMessage() {
System.out.println("Alice is the coolest");
}
}
ve Bob yapar:
class Foo {
public void printAWittyMessage() {
System.out.println("Alice is teh suk");
}
}
Alice ilk ona sürümünü denetler. Bob, kontrol etmeyi denediğinde, Git, bir çakışma olduğunu ve taahhüdün ana depoya itilmesine izin vermeyeceği konusunda uyarır. Bob yerel deposunu güncellemeli ve çatışmayı düzeltmeli. O böyle bir şey çıkacak:
class Foo {
public void printAWittyMessage() {
<<<<< HEAD:<some git nonsense>
System.out.println("Alice is the coolest");
=====
System.out.println("Alice is teh suk");
>>>>> blahdeblahdeblah:<some more git nonsense>
}
}
<<<<<
, =====
ve >>>>>
belirteçler hatları eş zamanlı değiştirildi hangi göstermektedir. Bob çatışmayı mantıklı bir şekilde çözmeli, işaretleyicileri kaldırmalı ve sonucu vermelidir.
Peki sonunda depoda yaşayan geçerli:
Orijinal versiyonu -> Alice'in sürümü -> Mehmet'in çatışma sabit sürümü.
Özetlemek gerekirse: ilk işlenecek herhangi bir sorun yaşanmadan, ikincisinin depoya girmeden önce çatışmayı çözmesi gerekir. Birinin otomatik olarak değişmesiyle asla değişmemelisin. Açıkçası Bob çatışmayı yanlış çözebilir, ancak sürüm kontrolünün güzelliği yanlış düzeltmeyi geri alabilir ve onarabilir.
Sen güzel söyledin! Alkışlar :-) –