Wie kann man denn eigentlich ein git diff erstellen mit neuen lokalen Dateien?
Gibt es da einen Trick? git diff zeigt ja nur Unterschiede von existierenden Dateien.
Git diff mit lokalen neueren Dateien
-
- Erleuchteter
- Beiträge: 450
- Registriert: Sonntag 28. Juli 2002, 01:18
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: Git diff mit lokalen neueren Dateien
git add geänderte_datei1 gänderte_datei_2 neue_datei
git diff --cached > mein.diff
git reset HEAD .
git diff --cached > mein.diff
git reset HEAD .
-
- Contributor
- Beiträge: 1623
- Registriert: Donnerstag 10. Januar 2002, 20:03
Re: Git diff mit lokalen neueren Dateien
Hallo Audio,
ich habe es mal abgetrennt.
Ich verstehe noch nicht ganz was Du machen willst? Du hast Dateien in Deinem lokalen Repo verändert und willst dazu einen Diff machen? Oder direkt einen Commit fähigen Commit?
Eventuell wirst Du unter http://wiki.tuxbox-cvs.sourceforge.net/ ... _erstellen schon fündig?
Ich handhabe das eigentlich immer so.
Version 1:
Ich habe vor sowieso einen oder mehrere Patches zu erstellen um diese dann seife oder anderen zukommen zu lassen. Dazu erstelle ich mir immer einen neuen Branch (basierend auf Branch 'master'). Dies kann in anderen Projekten anders sein! Im aktuellen CST Neutrino wäre dies aktuell der Branch 'libdvbsi++'.
Dieser mit der Option -t weil Git dann weiß von welchem Punkt an (welche Eltern SHA1 ID) dieser Branch gebildet wurde. Ist für mögliches Rebasing wichtig.
Dann natürlich noch in diesen wechseln.
Version 2:
Ich bin im Branch master und habe schon Veränderungen durchgeführt aber noch nicht commitet. Hier benutzt man dann 'git checkout' um einen neuen Branch zu erstellen und die Veränderungen mit zu nehmen. Die Option -b bedeutet hier 'neuer Branch'.
Nun kannst Du das verändern was Du willst. Und entsprechend commiten. Willst Du nun Patches erstellen zum versenden benutzt Du
Damit weiß Git das es den Branch 'master' nehmen muss als Basis wo gegen gedifft werden muss. Als Ergebnis fallen fertige nummerierte Patches heraus die verschickt werden können, wichtig ist aber das man Seinen Namen und Seine Email Adresse mit was sinnvollen versehen hat. Nicknames sind in vielen Projekten unüblich und nicht gern gesehen, auch sollte die Mailadresse real sein, schließlich könnten es ja Nachfragen von Dritten geben.
ich habe es mal abgetrennt.
Ich verstehe noch nicht ganz was Du machen willst? Du hast Dateien in Deinem lokalen Repo verändert und willst dazu einen Diff machen? Oder direkt einen Commit fähigen Commit?
Eventuell wirst Du unter http://wiki.tuxbox-cvs.sourceforge.net/ ... _erstellen schon fündig?
Ich handhabe das eigentlich immer so.
Version 1:
Ich habe vor sowieso einen oder mehrere Patches zu erstellen um diese dann seife oder anderen zukommen zu lassen. Dazu erstelle ich mir immer einen neuen Branch (basierend auf Branch 'master'). Dies kann in anderen Projekten anders sein! Im aktuellen CST Neutrino wäre dies aktuell der Branch 'libdvbsi++'.
Dieser mit der Option -t weil Git dann weiß von welchem Punkt an (welche Eltern SHA1 ID) dieser Branch gebildet wurde. Ist für mögliches Rebasing wichtig.
Code: Alles auswählen
$ git branch -t neuer_branch_name
Branch neuer_branch_name set up to track local branch master.
Code: Alles auswählen
$ git checkout !$
git checkout neuer_branch_name
Switched to branch 'neuer_branch_name'
Ich bin im Branch master und habe schon Veränderungen durchgeführt aber noch nicht commitet. Hier benutzt man dann 'git checkout' um einen neuen Branch zu erstellen und die Veränderungen mit zu nehmen. Die Option -b bedeutet hier 'neuer Branch'.
Code: Alles auswählen
git checkout -b neuer_name_branch
Switched to a new branch 'neuer_name_branch'
Code: Alles auswählen
$ git format-patch -s master
0001-foo.patch
0002-egal.patch
Na schönen Dank Herr Schwanke!
Ein toller Sommer!
Ein toller Sommer!
-
- Erleuchteter
- Beiträge: 450
- Registriert: Sonntag 28. Juli 2002, 01:18
Re: Git diff mit lokalen neueren Dateien
cool, danke für die Infos und den Beispielen