Hier ist ein kurzer Schnipsel Beispiel (die Sie in Ihrem Linux-Terminal einfügen können), ein neues git
Repository Erstellen und Hinzufügen einiger Dateien, um es (git Version 1.7.9.5 verwenden):Lassen git Status unmodifizierte/unveränderte Tracking-Dateien anzeigen?
cd /tmp/
mkdir myrepo_git
cd myrepo_git/
git init
git config user.name "Your Name"
git config user.email [email protected]
echo "test" > file_tracked_unchanged.txt
echo "test" > file_tracked_changed.txt
echo "test" > file_untracked.txt
git add file_tracked_unchanged.txt
git add file_tracked_changed.txt
git commit -m "initial commit"
Jetzt, nach der initial commit, ich möchte die file_tracked_changed.txt
Dateien ändern und die anderen (hier nur file_tracked_unchanged.txt
) unverändert für den nächsten Commit behalten. Unten ist ein Ausschnitt, der die (Ausgabe mit #
vorangestellt ist git
Shell), und die verschiedenen Ausgänge git status
vs git ls-files
zeigt:
echo "test more" >> file_tracked_changed.txt
git status -uno
# # On branch master
# # 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: file_tracked_changed.txt
# #
# no changes added to commit (use "git add" and/or "git commit -a")
git status
# # On branch master
# # 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: file_tracked_changed.txt
# #
# # Untracked files:
# # (use "git add <file>..." to include in what will be committed)
# #
# # file_untracked.txt
# no changes added to commit (use "git add" and/or "git commit -a")
git status -uno --short
# M file_tracked_changed.txt
git status --short
# M file_tracked_changed.txt
# ?? file_untracked.txt
git ls-files -v
# H file_tracked_changed.txt
# H file_tracked_unchanged.txt
git add file_tracked_changed.txt
git status -uno
# # On branch master
# # Changes to be committed:
# # (use "git reset HEAD <file>..." to unstage)
# #
# # modified: file_tracked_changed.txt
# #
# # Untracked files not listed (use -u option to show untracked files)
git status
# # On branch master
# # Changes to be committed:
# # (use "git reset HEAD <file>..." to unstage)
# #
# # modified: file_tracked_changed.txt
# #
# # Untracked files:
# # (use "git add <file>..." to include in what will be committed)
# #
# # file_untracked.txt
git status -uno --short
# M file_tracked_changed.txt
git status --short
# M file_tracked_changed.txt
# ?? file_untracked.txt
git ls-files -v
# H file_tracked_changed.txt
# H file_tracked_unchanged.txt
Was ich suche, ist ein Befehl, der alle Dateien aufgespürt wird zeigen, in ein Verzeichnis (das git ls-files -v
tut), mit ihren genauen Repository-Status (die git ls-files
nicht zeigt, wie es H
als Status für alle verfolgten Dateien zeigt). Zum Beispiel würde ich so etwas wie der Pseudo-Code zu erhalten, wie:
git status-tracked
# M file_tracked_changed.txt
# . file_tracked_unchanged.txt
... wo der Punkt .
wäre ein Symbol für den ein aufgespürt, aber unveränderte Datei (wenn ich mich richtig erinnere, kann SVN verwenden, um ein Zeichen U
für diese).
Letztlich würde Ich mag auch den Status aller Dateien in einem Verzeichnis zeigen, wie in dem Pseudo-Code:
git status-tracked-and-untracked
# M file_tracked_changed.txt
# . file_tracked_unchanged.txt
# ?? file_untracked.txt
... aber es ist mir wichtiger, um den Status aller zu erhalten Tracking-Dateien, wie in der Pseudo git status-tracked
oben.
Irgendwelche Befehle in git
, die schon so etwas tun?
Versuchen 'git status -sb' – Kartik
Vielen Dank für den Kommentar @Kartik - aber dieser Befehl zeigt verfolgt modifiziert + nicht geparkt; Ich bin auf der Suche nach einem Befehl, der verfolgt verfolgt + unmodifiziert verfolgt zeigt. Prost! – sdaau