395 Stimmen

Wie kann ich nur einige Dateien übertragen?

Ich habe zwei Projekte. Eines ist das "offizielle" Projekt und das zweite ist eine leichte Änderung (einige Dateien hinzugefügt). Ich habe einen neuen Zweig erstellt und neue Dateien hinzugefügt. Aber während der Entwicklung einige Dateien gemeinsam zu beiden Zweigen geändert wird.

Wie kann ich nur diese Dateien übertragen?

388voto

Alexander Oh Punkte 22027

Ich nehme an, Sie möchten die Änderungen an einen Zweig übertragen und diese Änderungen dann im anderen Zweig sichtbar machen. In Git sollten Sie keine Änderungen über HEAD haben, wenn Sie den Zweig wechseln.

Sie übertragen nur die geänderten Dateien durch:

git commit [some files]

Wenn Sie sicher sind, dass Sie einen sauberen Bereitstellungsbereich haben, können Sie auch

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 diese Übergabe in beiden Zweigen verfügbar machen wollen, müssen Sie

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

218voto

Abram Punkte 36743

Abrufen einer Liste von Dateien, die Sie übertragen 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

Hinzufügen der Dateien zum Staging

$ git add file1 file2

Überprüfen Sie, welche Verpflichtungen Sie eingehen

$ 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

Übertragen Sie die Dateien mit einer Übergabemeldung

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

Wenn Sie versehentlich die falschen Dateien übertragen

$ git reset --soft HEAD~1

Wenn Sie die Dateien entfernen und neu beginnen möchten

$ git reset

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

148voto

Adriano Rivolli Punkte 1928

Sie können einige aktualisierte Dateien übertragen, etwa so:

git commit file1 file2 file5 -m "commit message"

50voto

KamalDeep Punkte 556

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

  • Datei1
  • Datei2
  • Datei3
  • Datei4
  • Datei5

Sie wollen aber nur die Änderungen von Datei1 und Datei3 übertragen.

Es gibt zwei Möglichkeiten, dies zu tun:

1.Stage nur diese beiden Dateien, mit:

git add file1 file3

dann festlegen

git commit -m "your message"

dann drücken,

git push

2. direktes Engagement

git commit file1 file3 -m "your message"

dann drücken,

git push

Eigentlich die erste Methode ist nützlich für den Fall, dass wir Dateien regelmäßig ändern und sie bereitstellen --> Große Projekte, im Allgemeinen Live-Projekte.
Wenn wir jedoch Dateien ändern und nicht bereitstellen, können wir eine direkte Übergabe durchführen --> Kleine Projekte

44voto

Tom Stickel Punkte 18167

Einiges davon scheint "unvollständig" zu sein

Gruppen von Menschen werden NICHT wissen, ob sie Anführungszeichen usw. verwenden sollen.

hinzufügen 1 spezifische Datei, die auch die Standortpfade enthält

git add JobManager/Controllers/APIs/ProfileApiController.cs

Commit (denken Sie daran, dass die Übergabe nur lokal erfolgt und sich nicht auf andere Systeme auswirkt)

git commit -m "your message"  

An entferntes Repository übertragen

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

Die andere(n) Antwort(en) zeigen die Versteck usw., was Sie manchmal tun möchten

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X