Ich kann nicht pushen, wenn ich remote arbeite, also möchte ich einen einzigen Patch aus allen Commits erstellen, die noch nicht auf meinem Entwicklungszweig gepusht wurden, um ihn zu mailen. Wie mache ich das?git create patch von unpushed commits
Antwort
git format-patch <commit-ish>
erstellt eine Patch-Datei für jedes Commit, das Sie seit dem angegebenen Commit vorgenommen haben.
Also, alle nicht gedrückten Commits zu exportieren, einfach
git format-patch origin/master -o patches/
setzen und alle von ihnen werden Ausgang in das patches/
Verzeichnis sein.
Wenn Sie eine einzelne Datei haben wollen, fügen Sie --stdout
:
git format-patch origin/master --stdout > patches_$(date -I).patch
Dies wird eine Datei namens patches_2014-10-03.patch
erstellen (oder ein anderes Datum) mit allen Patches drin. Vorsicht:patch
oder andere einfache Patch-Anwendungen können nicht mit der produzierten Datei umgehen. Es funktioniert nur mit git am
.
Nebenbei bemerkt:
Ein einfache (und robuste), was zu tun wäre, eine Kopie Ihrer Repo auf einem thumbdrive oder ähnlich zu halten. Dann richten Sie den Thumbdrive als Fernbedienung ein (git remote add thumb /media/thumbdrive
), drücken Sie Ihre Commits dazu (git push thumb master
) und wenn Sie in Ihrer Firma sind, ziehen Sie vom Laufwerk und drücken Sie zum Ursprung.
Statt creating a patch, könnten Sie ein bundle (dh eine Datei repräsentiert ein Git-Repo, von dem aus Sie ziehen können, wird) erstellen. In Ihrem Fall wird ein incremental bundle benötigt.
git bundle create ../yourRepo.bundle" --since=x.days.ago --all
x
Ersetzen durch dann Anzahl der Tage, die Sie in diesem Bündel setzen wollen: keine Angst, „zu mayn“ Tage in diesem Repo zu setzen: jemand aus dem Bündel Klonen nur die neuen Commits bekommen, nicht die, die er/sie bereits im lokalen Repo hatte.
Ein Bündel ist eine einzelne Datei, wie ein Patch, kann aber auch als Git Repo verwendet werden: einfach zu kopieren und einfach zu verwenden (als reguläres Git Repo).
Wenn Sie nur einen lokalen Repo mit Commits durchführen, die von einem Remote-Repo durchgeführt wurden (von dem Sie nicht direkt drücken konnten), ist dies einfacher als Patches.
- 1. git finde doppelte commits (von patch-id)
- 2. Liste unpushed commits in allen Niederlassungen
- 3. Wie sehe ich meine lokalen unpushed Commits?
- 4. Wie man (unpushed) Commits von einem Zweig zum anderen
- 5. git show unpushed Arbeit
- 6. git create Branch mit bestehenden lokalen commits
- 7. Drücken "git push" alle Commits von anderen Zweigen?
- 8. git kann nicht quetschen commits
- 9. Commits von Git-Hooks ausschließen?
- 10. "git format-patch" entspricht einer einzelnen Datei?
- 11. Wie erstelle ich einen Patch für Rietveld von git/patch/*?
- 12. Git vorherige Commits abmelden?
- 13. Liste Git Commits nicht auf den Ursprung geschoben noch
- 14. git: größte Commits finden
- 15. Git wieder mehrere commits
- 16. Git push alle commits als single commit mit benutzerdefinierten Nachricht
- 17. Wie behebe ich ein unpushed merge commit (git)?
- 18. Git - wie alte commits zu löschen, ohne die letzten commits sha-1 zu beeinflussen?
- 19. Squash git Commits von Zweig Zweig
- 20. Git: Wie findet man Commits von root?
- 21. Get Commits von einzelnen Benutzer in GIT
- 22. Löschen von Commits mit Git Tower
- 23. Entfernen leere Commits in Git
- 24. Git-Log ohne Autoren-Commits
- 25. Hunk interaktiv mit git entfernen --patch
- 26. Wiederherstellen eines vorherigen Git-Commits?
- 27. bekommen commits 'tag in git
- 28. git filter-branch Commits Nachricht
- 29. git erstellen Patch mit diff
- 30. `git stash --patch` nicht Eingabetaste '
mögliches Duplikat von [Viewing Unpushed Git Commits] (http://stackoverflow.com/questions/2016901/viewing-unpushed-git-commits) – d33tah
absolut nicht, dass Thread antwortet nur, wie unpushed Commits anzeigen, sagt nichts über Erstelle einen Patch von ihnen – Kosmotaur