我想知道版本控制已知的文件列表。git相當於「svn -v status」
我知道,在SVN,你可以這樣做:
svn -v status
那麼你得到的
列表「[轉#1] [轉#2] [創造者] [文件 名]」
轉#1是有這個文件,並轉#2是有這個文件的第一個修訂版的最後一個版本。
此列表包含svn跟蹤的所有文件,而不是僅包含本地更改的文件。
我不知道如何使用GIT
我想知道版本控制已知的文件列表。git相當於「svn -v status」
我知道,在SVN,你可以這樣做:
svn -v status
那麼你得到的
列表「[轉#1] [轉#2] [創造者] [文件 名]」
轉#1是有這個文件,並轉#2是有這個文件的第一個修訂版的最後一個版本。
此列表包含svn跟蹤的所有文件,而不是僅包含本地更改的文件。
我不知道如何使用GIT
你做H的AVE this proposition關於svn地位等同用git:
git config alias.svn-status \!"\
{ \
git ls-files -o --directory -t ; \
git status | grep --color=never 'deleted: ' | sed 's|^.*deleted: ||' | sed 's|^|D |' ; \
git ls-files -m -s | awk '{print \$NF}' | sort -u | sed 's|^|M |' ; \
} \
| sort -k 2 \
| sed 's|^\\(.\\) *|\\1 |'"
我懷疑在這SO question通過Techism提到git log --name-status
(在評論)可能使別名短。
它的變種實際上是基於diff --name-status
:
svn-status = "! git ls-files --exclude-per-directory=.gitignore --exclude-from=.git/info/exclude --exclude-from=$HOME/.gitignore --others -t | sed 's| |\t|'; git diff HEAD --name-status "
git的狀態
,顯示了狀態很像svn status會做到這一點。
EG:
> $ git status
> # On branch master
> # Your branch is ahead of 'origin/master' by 2 commits.
> #
> # Changed but not updated:
> # (use "git add/rm <file>..." to update what will be committed)
> # (use "git checkout -- <file>..." to discard changes in working
> directory)
> #
> # modified: Gemfile
> # modified: Gemfile.lock
> # modified: app/controllers/application_controller.rb
> # modified: app/controllers/home_controller.rb
> # modified: app/controllers/projects_controller.rb
> ...
對於冗餘的緣故,從這個類似的問題重複回答:
List all the files that ever existed in a Git repository
git log --pretty=format: --name-only --diff-filter=A | sort -
或
git log --pretty=format: --name-status | cut -f2- | sort -u
「SVN -v狀態」 顯示所有被跟蹤SVN的文件。我認爲「git status」只顯示本地更改的文件。 – Vicky 2011-03-12 00:58:45
或者你想要git diff? – Techism 2011-03-12 01:02:51
其實:這個線程回答你的問題,我想... http://stackoverflow.com/questions/543346/git-list-all-the-files-that-ever-existed – Techism 2011-03-12 01:03:57