Ist es möglich zu fragen git diff
nicht verfolgte Dateien in die Diff-Ausgabe einbezieht, oder ist es am besten, wenn ich git add
auf die neu erstellten Dateien und die bereits bearbeiteten Dateien anwenden:
git diff --cached
?
Ist es möglich zu fragen git diff
nicht verfolgte Dateien in die Diff-Ausgabe einbezieht, oder ist es am besten, wenn ich git add
auf die neu erstellten Dateien und die bereits bearbeiteten Dateien anwenden:
git diff --cached
?
Für eine Datei:
git diff --no-index /dev/null new_file
Für alle neuen Dateien:
for next in $( git ls-files --others --exclude-standard ) ; do git --no-pager diff --no-index /dev/null $next; done;
Als Alias:
alias gdnew="for next in \$( git ls-files --others --exclude-standard ) ; do git --no-pager diff --no-index /dev/null \$next; done;"
Für alle geänderten und neuen Dateien zusammen als ein Befehl:
{ git --no-pager diff; gdnew }
Aktualisierung: Meine Antwort bezieht sich auf abgestufte und nicht abgestufte Änderungen. Nicht für verfolgte und nicht verfolgte. Siehe die akzeptierte Antwort für die Informationen zu verfolgten/unverfolgten Änderungen. Ich hinterlasse sie hier für die Nachwelt.
Im Folgenden finden Sie nur unbearbeitete Änderungen:
$ git diff
Wenn Sie sowohl abgestufte als auch nicht abgestufte Änderungen wünschen, fügen Sie HEAD
zum Befehl:
$ git diff HEAD
Mit der Idee, dass Sie die neue Datei bereitstellen und die bereitgestellten Dateien vergleichen können, können Sie diese beiden kombinieren, um den Unterschied zu sehen. Ich finde es einfach zu bedienen.
Fügen Sie die Dateien hinzu, für die Sie den Unterschied sehen wollen, nur nicht verfolgte Dateien hinzufügen . Optional können Sie nur die Dateien hinzufügen, für die Sie den Unterschied sehen möchten.
git stash && git add . && git stash pop
Diff die inszenierte
git diff --staged
Zurücksetzen der bereitgestellten Dateien, falls erforderlich
git reset
Die Kombination aller oben genannten Punkte,
git stash && git add . && git stash pop && git diff --staged && git reset
Normalerweise, wenn ich mit Teams an entfernten Standorten arbeite, ist es für mich wichtig, dass ich vorher weiß, welche Änderungen von anderen Teams an derselben Datei vorgenommen wurden, bevor ich den Git-Stufen untrack-->staged-->commit Zu diesem Zweck habe ich ein Bash-Skript geschrieben, das mir hilft, unnötige Merge-Konflikte mit entfernten Teams zu vermeiden oder einen neuen lokalen Zweig zu erstellen und mit dem Hauptzweig zu vergleichen und zusammenzuführen.
#set -x
branchname=`git branch | grep -F '*' | awk '{print $2}'`
echo $branchname
git fetch origin ${branchname}
for file in `git status | grep "modified" | awk "{print $2}" `
do
echo "PLEASE CHECK OUT GIT DIFF FOR "$file
git difftool FETCH_HEAD $file ;
done
im obigen Skript hole ich Remote-Hauptzweig (nicht notwendig seine Master-Zweig) zu FETCH_HEAD machen sie eine Liste meiner geänderten Datei nur und vergleichen modifizierte Dateien mit Git Difftool
hier viele difftool von Git unterstützt, konfiguriere ich 'Meld Diff Viewer' für gute GUI Vergleich.
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.