Ich habe zwei Projekte. Eines ist das "offizielle" Projekt und das zweite ist eine leichte Modifikation (einige Dateien hinzugefügt). Ich habe einen neuen Zweig erstellt und neue Dateien hinzugefügt. Während der Entwicklung werden jedoch einige Dateien geändert, die beiden Zweigen gemeinsam sind.
Wie kann ich nur diese Dateien festschreiben?
git
git-branch
git-commit
Nips
quelle
quelle
Antworten:
Ich nehme an, Sie möchten die Änderungen in einen Zweig übernehmen und diese Änderungen dann im anderen Zweig sichtbar machen. In Git sollten Sie keine Änderungen über HEAD haben, wenn Sie Zweige wechseln.
Sie schreiben nur die geänderten Dateien fest durch:
Oder wenn Sie sicher sind, dass Sie einen sauberen Staging-Bereich haben, können Sie
Wenn Sie dieses Commit in beiden Zweigen verfügbar machen möchten, tun Sie dies
quelle
git commit [some files]
das den--only
Wechsel impliziert ) verwendet werden. Das erste Beispiel (git add [some files]
gefolgt vongit commit
) übernimmt auch alle anderen Änderungen, die vorgenommen wurden.Rufen Sie eine Liste der Dateien ab, die Sie festschreiben möchten
Fügen Sie die Dateien zum Staging hinzu
Überprüfen Sie, was Sie festlegen
Übernehmen Sie die Dateien mit einer Festschreibungsnachricht
Wenn Sie versehentlich die falschen Dateien festschreiben
Wenn Sie die Dateien entfernen und neu beginnen möchten
quelle
Sie können einige aktualisierte Dateien wie folgt festschreiben:
quelle
Einiges davon scheint "unvollständig" zu sein
Gruppen von Menschen werden NICHT wissen, ob sie Anführungszeichen usw. verwenden sollten.
Fügen Sie 1 bestimmte Datei hinzu, die auch die Speicherortpfade anzeigt
Festschreiben ( Denken Sie daran, Festschreiben ist nur lokal und wirkt sich nicht auf andere Systeme aus.)
Zum Remote-Repo drücken
Andere Antworten zeigen den Vorrat usw., den Sie manchmal tun möchten
quelle
Wenn Sie bereits Dateien bereitgestellt haben, entfernen Sie sie einfach:
Fügen Sie sie dann Stück für Stück wieder hinzu.
quelle
Angenommen, Sie haben Änderungen an mehreren Dateien vorgenommen, z.
Sie möchten jedoch nur Änderungen an Datei1 und Datei3 festschreiben.
Dafür gibt es zwei Möglichkeiten:
1.Stufen Sie nur diese beiden Dateien ein, indem Sie Folgendes verwenden:
dann begehen
dann drücken,
2.Direktes Festschreiben
dann drücken,
Eigentlich ist die erste Methode nützlich , wenn wir Dateien regelmäßig ändern und bereitstellen -> Große Projekte, im Allgemeinen Live-Projekte.
Wenn wir jedoch Dateien ändern und nicht bereitstellen, können wir direkt festschreiben -> kleine Projekte
quelle
--only
. Dann wäre es der gleiche Befehl wiegit commit --only file1 --only file3 -m "my message"
oder unter Verwendung einer Verknüpfung alsgit commit -o file1 -o file3 -m "my message"
Referenz: git-scm.com/docs/git-commitDies ist ein einfacher Ansatz, wenn Sie nicht viele Codeänderungen haben:
Wenn Sie den Code, den Sie entfernt haben (Bits, die Sie nicht festgeschrieben haben), in einem separaten Commit oder einem anderen Zweig haben möchten, tun Sie Folgendes, während Sie sich noch in diesem Zweig befinden:
Wenn Sie in Schritt 5 den Stash bereits angewendet und den in Schritt 4 gewünschten Code festgeschrieben haben, ist der Unterschied und der nicht verfolgte Code im neu angewendeten Stash nur der Code, den Sie in Schritt 3 entfernt haben, bevor Sie in Schritt 4 festgeschrieben haben.
Als solches ist Schritt 6 ein Vorrat des Codes, den Sie nicht festschreiben wollten, da Sie diese Änderungen wahrscheinlich nicht wirklich verlieren möchten, oder? Der neue Stash aus Schritt 6 kann nun für diesen oder einen anderen Zweig festgeschrieben werden, indem git stash auf den richtigen Zweig angewendet und festgeschrieben wird.
Dies setzt natürlich voraus, dass Sie die Schritte in einem Ablauf ausführen. Wenn Sie an einem anderen Punkt in diesen Schritten verstauen, müssen Sie die Versteckreferenz für jeden der oben genannten Schritte notieren (und nicht nur die grundlegende Verstecke und die neueste Verstecke anwenden).
quelle