Frage

Ich habe zwei Zweige, die vollständig miteinander verschmolzen werden.

Nachdem jedoch die Zusammenführung erfolgt ist, erkenne ich, dass eine Datei, die von der Zusammenführung (jemand anderes tat ein Auto-Format, gah), und es wäre einfach leichter zu ändern verkorkste auf die neue Version in der anderen wurde Zweig, und dann wieder einsetzen meine eine Zeile ändern, nachdem es über in meinem Zweig zu bringen.

Also, was ist der einfachste Weg, in git, dies zu tun?

War es hilfreich?

Lösung

Führen Sie dies aus der Branche, wo Sie die Datei wollen, um am Ende:

git checkout otherbranch myfile.txt

Allgemeine Formeln:

git checkout <commit_hash> <relative_path_to_file_or_dir>
git checkout <remote_name>/<branch_name> <file_or_dir>

Einige Anmerkungen (von Kommentaren):

  • die Hash-commit verwenden Sie Dateien aus jedem ziehen begehen
  • Dies funktioniert für Dateien und Verzeichnisse
  • überschreibt die Datei myfile.txt und mydir
  • Wildcards nicht funktionieren, aber relative Pfade tun
  • Mehrere Pfade angegeben werden können

eine Alternative:

git show commit_id:path/to/file > path/to/file

Andere Tipps

beendete ich in dieser Frage auf einer ähnlichen Suche nach oben. In meinem Fall war auf der Suche ich eine Datei von einem anderen Zweig in aktuelles Arbeitsverzeichnis zu extrahieren, die von der Datei ursprünglichen Speicherort anders waren. Antwort :

git show TREEISH:path/to/file >path/to/local/file

Was ist mit der Kasse Befehl:

  git diff --stat "$branch"
  git checkout --merge "$branch" "$file"
  git diff --stat "$branch"

madlep Antwort Nach kopieren Sie auch nur ein Verzeichnis von einem anderen Zweig mit dem Verzeichnis Blob.

git checkout other-branch app/**

In Bezug auf die Frage des op, wenn Sie nur eine Datei in dort geändert haben, werden diese funktionieren ^ _ ^

1) Stellen Sie sicher, Sie in Zweig sind, wo Sie eine Kopie der Datei benötigen. für zB: Ich möchte Unterzweig-Datei im Master, so dass Sie in Master git checkout master zur Kasse oder sollten

sein müssen

2) Jetzt bestimmte Datei Kasse allein Sie untergeordneten Zweig in Master mögen,

git checkout sub_branch file_path/my_file.ext

hier sub_branch bedeutet, in dem Sie die Datei von Dateinamen gefolgt, die Sie brauchen zu kopieren.

Bitte beachten Sie, dass in der akzeptierten Antwort, die erste Option Stufen die gesamte Datei aus dem anderen Zweig (wie git add ... durchgeführt worden ist), und dass die zweite Option führt einfach die Datei zu kopieren, aber die Änderungen nicht die Bühne (als ob Sie einfach die Datei manuell bearbeitet hatten und herausragende Unterschiede).

Git Kopie Datei von einem anderen Zweig, ohne es zu inszenieren

Änderungen statt (z git add filename):

$ git checkout directory/somefile.php feature-B

$ git status
On branch feature-A
Your branch is up-to-date with 'origin/feature-A'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   directory/somefile.php

Änderungen herausragende (nicht inszeniert oder stationär):

$ git show feature-B:directory/somefile.php > directory/somefile.php

$ git status
On branch feature-A
Your branch is up-to-date with 'origin/feature-A'.
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   directory/somefile.php

no changes added to commit (use "git add" and/or "git commit -a")
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top