Wie übertrage ich nur einige Dateien?

Lesezeit: 6 Minuten

Wie ubertrage ich nur einige Dateien
Nips

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 ihnen neue Dateien hinzugefügt. Aber während der Entwicklung werden einige Dateien geändert, die beiden Zweigen gemeinsam sind.

Wie übertrage ich nur diese Dateien?

  • Sind diese beiden Projekte mit demselben Git-Repository verbunden?

    – Oleksandr

    30. August 2011 um 6:20 Uhr

  • Ja, es ist dasselbe Repository, aber ich möchte meinen Zweig nicht auf den Server stellen

    – Nips

    30. August 2011 um 6:25 Uhr

  • Warum also führst du deinen neuen Zweig nicht mit dem Master (oder einem anderen offiziellen Zweig) zusammen?

    – Oleksandr

    30. August 2011 um 6:28 Uhr

  • Antworten auf diese Fragen sollen Ihnen helfen: stackoverflow.com/questions/7161860/… stackoverflow.com/questions/7175869/…

    – eckes

    30. August 2011 um 12:32 Uhr

Wie ubertrage ich nur einige Dateien
Alexander Ach

Ich nehme an, Sie möchten die Änderungen an einem Zweig festschreiben und diese Änderungen dann im anderen Zweig sichtbar machen. In Git sollten Sie keine Änderungen über HEAD haben, wenn Sie Zweige ändern.

Sie übertragen nur die geänderten Dateien, indem Sie:

git commit [some files]

Oder wenn Sie sicher sind, dass Sie einen sauberen Staging-Bereich haben, können Sie das tun

git add [some files]       # add [some files] to staging area
git add [some more files]  # add [some more files] to staging area
git commit                 # commit [some files] and [some more files]

Wenn Sie diesen Commit in beiden Zweigen verfügbar machen möchten, tun Sie dies

git stash                     # remove all changes from HEAD and save them somewhere else
git checkout <other-project>  # change branches
git cherry-pick <commit-id>   # pick a commit from ANY branch and apply it to the current
git checkout <first-project>  # change to the other branch
git stash pop                 # restore all changes again

  • Sich buchstäblich zu verpflichten nur diese Dateien, auch wenn andere Änderungen vorgenommen wurden, das zweite Beispiel (git commit [some files]was die impliziert --only Schalter) verwendet werden. Das erste Beispiel (git add [some files] gefolgt von git commit) wird auch alle anderen Änderungen vornehmen, die inszeniert wurden.

    – Lexika

    9. März 2013 um 6:07 Uhr

  • Ich wäre hilfreich, um Beispiele für Git Commit bereitzustellen [some files]. Wie sollten Sie ersetzen [some files]Komma, Leerzeichen?

    – Claudius Creanga

    26. März 2015 um 10:06 Uhr


  • @claudiu Shell-Zeug ist normalerweise durch Leerzeichen getrennt. Und wenn Du tief genug eintauchst, kannst Du das zu allem ändern

    – Alexander Ach

    26. März 2015 um 10:09 Uhr

  • Wenn Sie einige Beispiele hinzufügen können, ist diese Antwort großartig.

    – Yamur

    1. Juni 2020 um 7:41 Uhr

1646314690 116 Wie ubertrage ich nur einige Dateien
Abraham

Rufen Sie eine Liste der Dateien ab, die Sie übergeben möchten

$ git status

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:   file1
modified:   file2
modified:   file3
modified:   file4

Fügen Sie die Dateien zum Staging hinzu

$ git add file1 file2

Überprüfen Sie, um zu sehen, was Sie begehen

$ git status

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

    modified:   file1
    modified:   file2

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:   file3
    modified:   file4

Übergeben Sie die Dateien mit einer Commit-Nachricht

$ git commit -m "Fixed files 1 and 2"

Wenn Sie versehentlich die falschen Dateien übergeben

$ git reset --soft HEAD~1

Wenn Sie die Dateien aus der Staging-Umgebung entfernen und von vorne beginnen möchten

$ git reset

Unstaged changes after reset:
M file1
M file2
M file3
M file4

  • Das ist falsch. Ich tat git add file1 file2 und dann git commit -m "Fixed files 1 and 2" und es begangen ALLE die Dateien.

    – Binäres Web

    23. April 2021 um 18:57 Uhr

  • @BinarWeb Weil Sie all diese Dateien bereitgestellt (hinzugefügt) hatten. Aber es ist erwähnenswert, in der Antwort absolut klar zu sein. Was in deinem Fall funktioniert hätte: git commit file1 file2 -m "Fixed files 1 and 2"

    – UncaughtTypeError

    29. August 2021 um 19:54 Uhr


  • @UncaughtTypeError Verstehe nicht, warum diese Antwort so viele positive Stimmen erhalten hat, während die Frage eindeutig “beiden Zweigen gemeinsam” lautet, was bedeutet, dass sie bereits inszeniert ist. Wie Binar Web erwähnte, ist diese Antwort angesichts der gestellten Frage falsch.

    – Farid

    3. Februar um 12:26 Uhr


Sie können einige aktualisierte Dateien wie folgt übertragen:

git commit file1 file2 file5 -m "commit message"

1646314690 544 Wie ubertrage ich nur einige Dateien
Tom Stickel

Einiges davon scheint “unvollständig” zu sein

Personengruppen werden NICHT wissen, ob sie Anführungszeichen usw. verwenden sollten.

Addieren 1 spezifische Datei, die auch die Standortpfade zeigt

git add JobManager/Controllers/APIs/ProfileApiController.cs

Begehen (Denken Sie daran, Commit ist nur lokal, es wirkt sich nicht auf andere Systeme aus)

git commit -m "your message"  

An entferntes Repo senden

git push  (this is after the commit and this attempts to Merge INTO the remote location you have instructed it to merge into)

Andere Antworten zeigen die verstauen usw., was Sie manchmal tun möchten

1646314691 386 Wie ubertrage ich nur einige Dateien
KamalDeep

Angenommen, Sie haben Änderungen an mehreren Dateien vorgenommen, z. B.:

  • Datei1
  • Datei2
  • Datei3
  • Datei4
  • Datei5

Aber Sie wollen nur Änderungen von File1 und File3 festschreiben.

Dazu gibt es zwei Möglichkeiten:

1.Stage nur diese beiden Dateien mit:

git add file1 file3

dann verpflichte dich

git commit -m "your message"

dann drücken,

git push

2. Direkte Zusage

git commit file1 file3 -m "your message"

dann drücken,

git push

Tatsächlich erste Methode ist nützlich für den Fall, dass wir regelmäßig Dateien ändern und bereitstellen –> Große Projekte, im Allgemeinen Live-Projekte.
Aber wenn wir Dateien modifizieren und sie nicht stagnieren, können wir direktes Commit durchführen –> Kleine Projekte

  • Wenn Sie den Dateinamen nicht angeben, wie es Ihr zweites Beispiel vorschlägt, geht git davon aus, dass das Befehlsflag für diese Argumente lautet --only. Dann wäre es der gleiche Befehl wie git commit --only file1 --only file3 -m "my message" oder mit einer Verknüpfung als git commit -o file1 -o file3 -m "my message" Referenz: git-scm.com/docs/git-commit

    – Benutzer

    30. Oktober 2018 um 19:42 Uhr


1646314691 812 Wie ubertrage ich nur einige Dateien
Kaiser

Wenn Sie bereits Dateien bereitgestellt haben, heben Sie die Bereitstellung einfach auf:

git reset HEAD [file-name-A.ext] [file-name-B.ext]

Fügen Sie sie dann nach und nach wieder hinzu.

  • Wenn Sie den Dateinamen nicht angeben, wie es Ihr zweites Beispiel vorschlägt, geht git davon aus, dass das Befehlsflag für diese Argumente lautet --only. Dann wäre es der gleiche Befehl wie git commit --only file1 --only file3 -m "my message" oder mit einer Verknüpfung als git commit -o file1 -o file3 -m "my message" Referenz: git-scm.com/docs/git-commit

    – Benutzer

    30. Oktober 2018 um 19:42 Uhr


Ich denke, Sie können auch die Befehlszeile verwenden:

git add -p

Auf diese Weise können Sie alle Ihre nicht festgeschriebenen Dateien einzeln überprüfen und auswählen, ob Sie sie festschreiben möchten oder nicht.

Dann haben Sie einige Optionen, die für jede Änderung angezeigt werden: Ich verwende das “y” für “Ja, ich möchte diese Datei hinzufügen” und das “n” für “Nein, ich werde diese Datei später übertragen”.

Stage this hunk [y,n,q,a,d,K,g,/,e,?]?

Was die anderen Optionen betrifft, die ( q,a,d,K,g,/,e,? ) sind, bin ich mir nicht sicher, was sie tun, aber ich denke, das “?” kann Ihnen helfen, wenn Sie tiefer in die Details gehen müssen.

Das Tolle daran ist, dass Sie dann Ihre Arbeit vorantreiben und danach einen neuen Zweig erstellen können, und die gesamte nicht festgeschriebene Arbeit wird Ihnen auf diesem neuen Zweig folgen. Sehr nützlich, wenn Sie viele verschiedene Dinge codiert haben und Ihre Arbeit auf GitHub tatsächlich neu organisieren möchten, bevor Sie es pushen.

Hoffe das hilft, ich habe es vorher nicht gesehen (wenn es erwähnt wurde, mein Fehler)

923930cookie-checkWie übertrage ich nur einige Dateien?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy