it-swarm.com.de

Wie kann ich sehen, was sich in einer Datei geändert hat, bevor Sie sich für git entscheiden?

Ich habe bemerkt, dass ich bei der Arbeit an ein oder zwei Tickets, wenn ich einen Schritt entferne, nicht sicher bin, woran ich gearbeitet habe, was sich geändert hat und so weiter.

Gibt es eine Möglichkeit, die für eine bestimmte Datei vorgenommenen Änderungen anzuzeigen, bevor git add und dann git commit ausgeführt werden?

294
Angela

Sie suchen nach git diff . Abhängig von Ihrer genauen Situation gibt es drei nützliche Möglichkeiten, um es zu verwenden:

# show differences between index and working tree
# that is, changes you haven't staged to commit
git diff [filename]
# show differences between current commit and index
# that is, what you're about to commit
# --staged does exactly the same thing, use what you like
git diff --cached [filename]
# show differences between current commit and working tree
git diff HEAD [filename]

Es funktioniert rekursiv für Verzeichnisse. Wenn keine Pfade angegeben sind, werden alle Änderungen angezeigt.

450
Cascabel

Verwenden Sie git-diff :

git diff yourfile
27
Felix Kling

Für mich ist git add -p der nützlichste Weg (und ist meiner Meinung nach von git-Entwicklern gedacht?), Um alle nicht bereitgestellten Änderungen zu überprüfen (es zeigt den Unterschied für jede Datei) habe alle inszeniert, dann git commit verwenden und für den nächsten Commit wiederholen. Dann können Sie jedes Commit zu einem nützlichen oder sinnvollen Satz von Änderungen machen, auch wenn diese in verschiedenen Dateien vorgenommen wurden. Ich würde auch vorschlagen, einen neuen Zweig für jedes Ticket oder eine ähnliche Aktivität zu erstellen, und mit checkout zwischen ihnen wechseln (vielleicht mit git stash, wenn Sie nicht vor dem Wechsel festschreiben möchten) . Vergiss nicht, oft zusammenzutreten.

7
Reed Hedges

git diff filename

6
elmt

Denken Sie daran, dass Sie Änderungen nicht Dateien übernehmen.

Aus diesem Grund ist es sehr selten, dass ich git add -p (oder das Magit-Äquivalent) nicht zum Hinzufügen meiner Änderungen verwende.

4
Dustin

git diff

Zeigt Änderungen zwischen dem Arbeitsbaum und dem Index oder einem Baum an, wechselt zwischen dem Index und einem Baum, wechselt zwischen zwei Baumstrukturen oder zwischen zwei Dateien auf der Festplatte.

4
miku
git diff <path>/filename

pfad kann Ihr vollständiger Systempfad bis zur Datei oder sein 
Wenn Sie sich im Projekt befinden, fügen Sie auch den geänderten Dateipfad ein
Für geänderte Dateien mit Pfad verwenden Sie: git status

2
HariKishore

Nun, mein Fall, wenn Sie sich nicht um die Dateiliste kümmern wollen. Zeig ihnen einfach alles.

Wenn Sie git add bereits mit Ihrer Dateiliste ausgeführt haben:

$ git diff --cached $(git diff --cached --name-only)

Dasselbe kann für nicht hinzugefügte Dateien verwendet werden, jedoch ohne die Option --cached.

$ git diff $(git diff --name-only)

Git-Befehlsalias für "zwischengespeicherte" Option:

$ git config --global alias.diff-cached '!git diff --cached $(git diff --cached --name-only)'
1
Kirby

Gehen Sie zu Ihrem entsprechenden Git-Repo und führen Sie dann den folgenden Befehl aus:

git diff Dateiname

Die Datei wird mit den markierten Änderungen geöffnet. Drücken Sie die Eingabetaste, um die Datei nach unten zu scrollen.

P.S. Dateiname sollte den vollständigen Pfad der Datei enthalten. Andernfalls können Sie den vollständigen Dateipfad ausführen, indem Sie in das entsprechende Verzeichnis bzw. den Ordner der Datei gehen

0
Yash Bansal

Sie können auch einen git-freundlichen Texteditor verwenden. Sie zeigen Farben in den Linien, die geändert wurden, eine andere Farbe für hinzugefügte Linien, eine andere Farbe für gelöschte Linien usw.

Ein guter Texteditor, der dies tut, ist GitHub's Atom 1.0 .

0
AskYous