2016-06-01 12 views
7

Nach einem git rebase habe ich Konflikte zu lösen. Ich bin verwirrt durch die Bedeutung von "hinzugefügt von uns" auf A.java. Was verhindert, dass es automatisch als neue Datei wie zB C.java hinzugefügt/bereitgestellt wird?Was bedeutet git "von uns hinzugefügt"?

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 

git Version 2.5.1.windows.1

+0

Es klingt, als ob Sie wissen, dass Rebase durch wiederholtes Cherry-Pick funktioniert, und dass diese Cherry-Pick-Operationen ausgeführt werden, während ein anonymer Zweig vom '--onto'-Ziel der Rebase wächst. Daher bedeutet "von uns hinzugefügt", dass "wir in unserem aktuellen" detached-HEAD Commit im Vergleich zur Merge-Base vorhanden sind ". Es scheint seltsam/falsch, dass dies nicht automatisch zum Commit inszeniert wird. – torek

+0

Können Sie das Geheimnis lösen? –

Antwort

0

"git rebase" ist klobig und stumpf, aber ach so nützlich. Um zusammenzufassen, was ich in Ihrem Fall vorhabe, wird ein Rebase- "Merge-Konflikt" von den "beiden modifizierten" erzeugt. Sie müssen wählen, welche Mod Sie wollen - die "com/company/B.java" -Mods in ihrem Zweig, die Mods in Ihrem Zweig oder eine Kombination aus beidem. Der "von uns hinzugefügte:" sagt Ihnen, dass "com/company/A.java" für Ihre Branche neu ist und von der Branche eingebracht wurde, gegen die Sie regressieren. Aber aufgrund der Art und Weise, wie Git die Rebase implementiert, ist "uns" wirklich ihr Zweig. Nicht sicher, ob dies als "Zusammenführungskonflikt" von Rebase gezählt wird, es sei denn, Sie haben "com/company/A.java" in Ihrem Zweig, dem Ziel der Rebase, gelöscht. In diesem Fall wäre das ein Rebase- "Merge-Konflikt", den Sie lösen müssten. Um solch einen "Merge-Konflikt" zu lösen, denken Sie daran, dass "uns" wirklich ihr Zweig ist und "ihr" wirklich Ihr Zweig ist. Blah.

+0

Ich sollte das erwähnen. Manchmal lässt "git rebase" einen Kirschpflock vermasseln und man muss ihn überspringen, indem man "git rebase --skip" macht. – BoiseBaked