2016-06-01 25 views
7

Po git rebase mam konflikty scalania do rozwiązania. Jestem zdezorientowany przez znaczenie "dodanego przez nas" na A.java. Co zapobiega automatycznemu dodawaniu/wdrażaniu jako nowy plik, taki jak C.java?Co oznacza git "dodany przez nas"?

Changes to be committed: 
    (use "git reset HEAD <file>..." to unstage) 

     new file: com/company/C.java 

Unmerged paths: 
    (use "git reset HEAD <file>..." to unstage) 
    (use "git add <file>..." to mark resolution) 

     added by us:  com/company/A.java 
     both modified: com/company/B.java 

wersja git 2.5.1.windows.1

+0

Wygląda na to, że zdajesz sobie sprawę, że zmiana nazwy działa przez powtarzanie czereśni i że te operacje wybierania czereśni są wykonywane podczas rozwijania anonimowej gałęzi od celu '--onto' w reszcie. Stąd "dodany przez nas" oznacza "są obecne w naszym obecnym unieruchomionym HEAD commit w porównaniu do merge-base". Wydaje się dziwne/błędne, że nie jest to automatycznie wystawiane na zatwierdzenie. – torek

+0

Czy możesz rozwiązać zagadkę? –

Odpowiedz

0

"git rebase" to niezgrabne i tępy, ale jakże przydatne. Podsumowując, co moim zdaniem dzieje się w twoim przypadku, "konflikt scalania" jest tworzony przez "oba zmodyfikowane". Musisz wybrać, który mod chcesz - mody "com/company/B.java" w swojej gałęzi, mody w twojej gałęzi lub kombinację obu. "Dodany przez nas:" mówi ci, że "com/company/A.java" jest nowością w twoim oddziale i został wprowadzony przez oddział, przeciwko któremu się opierasz. Ale ze względu na sposób, w jaki git implementuje rebase, "my" jest naprawdę ich gałęzią. Nie jestem pewien, czy jest to liczone jako reorganizacja "konfliktu scalającego", chyba że usunąłeś "com/company/A.java" w swoim oddziale, czyli celu bazy danych rebase. W takim przypadku byłby to rebeliancki "konflikt scalania", który musiałbyś rozwiązać. Aby rozwiązać taki konflikt "scalania", pamiętaj, że "my" jest naprawdę ich gałęzią, a "ich" jest naprawdę twoją gałęzią. Bla.

+0

Powinienem o tym wspomnieć. Czasami "git rebase" po prostu wkręca czereśnia i musisz go pominąć, wykonując 'git rebase --skip'. – BoiseBaked