2016-05-27 4 views
4

Ich habe zwei Dateien namens vvn.c und aqu.c Ich habe Änderungen an vvn.c und ich habe das in meinem Git zu begehen. Wie man die gleichen Änderungen auf aqu.c cherry-pick Der einzige Unterschied ist die APIs.Wie kann man Änderungen von einer Datei zu einer anderen Datei per Mausklick auswählen?

vvn.c enthält API als vvn_function_names()

während aqu.c API enthält als unions_function_names()

Ich weiß nicht, wie das zu tun. Ich weiß über Rosinenpickerei in die gleiche Datei. Gibt es eine Möglichkeit, das zu tun?

+0

https://Stackoverflow.com/a/16527024/702456 ist wirklich die Antwort, die Sie wahrscheinlich wollten. Wenn jemand anderes hier endet, sollte es erwähnt werden –

Antwort

3

Nicht gerade cherry-pick, aber Sie könnten verwenden möchten:

git checkout <branch or sha of commit> -- filename

Diese Datei durch seine Version in einem anderen Zweig Auscheckvorgänge; es ist die einfachste mögliche Lösung, wenn es Ihre Bedürfnisse erfüllt (dh, wenn Sie Änderungen an der Datei aus zwei getrennten Zweigen nicht zusammenführen müssen)

Die andere Möglichkeit ist, diff zu erzeugen (Sie können Diff von erzeugen eine Reihe von Commits nur und beschränken Sie es auf eine Datei) und wenden Sie dann das diff an. Check out: How to diff the same file between two different commits on the same branch?

+0

Können Sie bitte ein Beispiel über das erste geben? – AQU

+0

In Ihrem Fall wäre es etwas wie: 'git checkout-witch-aqu-changes - aqu.c' –

+0

Hmm. Ich habe beide Dateien in demselben Zweig. 'vvn.c' und' aqu.c' befinden sich in verschiedenen Verzeichnissen. So, wie man jetzt auscheckt? – AQU

3

Grundsätzlich müssen Sie ein Diff auf die vvn.c Änderungen vornehmen und sie auf eine aqu.c anwenden. Siehe z.B. hier: How to apply a Git patch to a file with a different name and path?

Dies ist jedoch ziemlich schwierig. Warum haben Sie verschiedene Dateinamen, die ähnlich sind, damit Sie dieselben Änderungen vornehmen sollten?

Wahrscheinlich ist es besser, einen anderen Ansatz zu finden. Z.B. Für ein C könnten Sie #include verwenden und den gemeinsamen Teil in eine separate Datei extrahieren.

Verwandte Themen