這裏是一個簡短的片斷例子(你可以在你的Linux終端粘貼),創建一個新的git
存儲庫,並增加了一些文件給它(使用Git版本1.7.9.5):使git狀態顯示未修改/未更改的跟蹤文件?
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"
現在,經過初始提交,我想更改file_tracked_changed.txt
文件,並使其他人(此處僅爲file_tracked_unchanged.txt
)保持不變,以用於下一次提交。下面是一個片斷這表明,和git status
VS git ls-files
多樣化的輸出(git
外殼輸出前綴#
):
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
我在找什麼,是一個命令,它會顯示所有在跟蹤文件一個目錄(git ls-files -v
),它們的準確存儲庫狀態(其中git ls-files
未顯示,因爲它顯示H
爲所有跟蹤文件的狀態)。舉例來說,我想獲得類似的僞代碼:
git status-tracked
# M file_tracked_changed.txt
# . file_tracked_unchanged.txt
...其中點.
將一個符號指示跟蹤,但不變的文件(如果我沒有記錯,SVN可以使用U
字符對於這些)。
最後,我想也顯示所有文件的狀態在一個目錄,如僞代碼:
git status-tracked-and-untracked
# M file_tracked_changed.txt
# . file_tracked_unchanged.txt
# ?? file_untracked.txt
...但要獲得所有的狀態,這是對我來說更重要跟蹤文件,如上面的僞git status-tracked
。
git
中的任何命令,已經做了這樣的事情?
嘗試'混帳地位的評論-sb' – Kartik 2013-04-30 19:05:55
非常感謝@Kartik - 但該命令顯示跟蹤修改+ untracked;我正在尋找一個命令,顯示跟蹤修改+跟蹤未修改。乾杯! – sdaau 2013-04-30 19:15:34