206

git status私の場合、ステージングされたファイルが多すぎるために、変更されたファイルのみを表示することは可能ですか?

4

17 に答える 17

310

でこれを行うことはできませんが、変更されたすべてのファイルを表示するためにgit status使用できます。git ls-files -m

于 2012-04-04T20:26:40.603 に答える
69

git status -unoディレクトリに何も表示されずに、gitが追跡しているファイルのみが表示されるようです。正確にはあなたが求めていたものではありませんが、おそらく同じことを達成します(gitが追跡するファイルの読み取り可能な長さのリストを取得します)。

于 2012-04-04T20:28:20.740 に答える
35

変更されたファイルの場合:

git status | grep modified:
于 2014-12-04T12:48:36.790 に答える
34
git status -s | awk '{if ($1 == "M") print $2}'
于 2012-11-20T18:15:25.900 に答える
20

git diff --name-only --diff-filter=M

于 2016-12-29T15:41:43.557 に答える
10

git diff --name-onlyも動作します。

于 2016-02-21T13:37:01.470 に答える
5

私は同じ情報を探していましたが、次のように変更されたファイルが見つかりました:

git status -uno
于 2018-12-09T06:42:05.760 に答える
5

使用できます

$ git status -uno 

変更されたファイルのみを一覧表示します。

于 2019-06-19T19:56:53.930 に答える
3

変更されたファイルを一覧表示するには、次を使用します。

git ls-files -m

ベース名のみ(パスなし)が必要な場合は、xargsを使用して各結果をbasenameコマンドに1行ずつパイプできます。

git ls-files -m | xargs -L 1 basename
于 2017-11-09T23:33:20.667 に答える
3

問題は、ステージングされたファイルが多すぎて、現時点ではコミットまたはgitignoreしたくないので、上にスクロールできないことです。

これは、変更されたファイルのみを一覧表示するという質問に直接答えることはできませんが、一覧表示されるファイルの数を制限するのに役立つ場合があります。

パスを渡してgit status、出力をリポジトリ内の特定のフォルダーに制限できます。

例えば:

git status app
git status spec
git status src/components
于 2019-07-01T15:47:12.320 に答える
3

私はこのコマンドを使用します:

$ git status -sb -uno | grep -v "^\sD\s"

そして、出力は次のようになります。

## master...origin/master
 M GNUmakefile
 M include/mp4v2/project.h
于 2020-05-01T23:36:19.690 に答える
1

アップデート

開く.gitconfig

[user]
     name = ...
     email = ...
[alias]
    #  add below code
    mySt = "!f() {\
        inputType=${1:-" "};\
        git status -s | grep "\\ $inputType" |\
        sed -e 's/ / /'   ;\
    }; f"

説明:https ://stackoverflow.com/a/62772985/9935654

利用方法

git mySt M :変更されたショー:

git mySt M *.md :変更されたすべての*.mdを表示します。

git mySt D :削除:

git mySt :と同じgit status -s


OS:ウィンドウ

次のコマンドは、 「modified:」「renamed:」 、または「newfile:」を含むすべての行を表示します。

git status | findstr "modified: renamed: new file:"

ファイルタイプを指定したい場合:(例*.py *.ini

git status *.py *.ini | findstr "modified: renamed: new file:"

あなたがそれがあまりにも多くをタイプするのがあまりにも難しいと思うならば:

  1. バッチファイルを作成します(例st.bat:)

  2. 次のように内容を書きます。

    @echo off
    :: st.bat  (this line doesn't necessarily. ( just let you know the scripts name.))
    git status %~1 | findstr "modified: renamed: new file:"
    
  3. バッチファイルを含む環境パスを追加します。(st.bat

  4. 利用方法

    st.bat "*.py *.ini"
    

    (注:タイプ> 1の場合は、セミコロンを追加する必要があります)

OS:LINUX

@Lanceが言うようにあなたは試すことができます

git status | grep modified:

于 2019-10-14T02:06:25.267 に答える
0

私は使用しますgit cola。変更されたファイルを表示し、行った変更のショットのような差分を提供する、シンプルでエレガントなUIクライアント。

git cola変更したファイル、ステージングしたファイル、さらには追跡していないファイルを視覚化できるGUIを提供します。あなたの質問は、私が信じているだけでgit statusを使用することでしたが、gitcolaはそれや他のことにも役立つと思いました。詳細情報からこのWebページを確認してください:git-cola.github.com/screenshots.html

于 2012-04-05T01:30:49.053 に答える
0

変更されたファイルを一覧表示する場合は、次のようにします。

git log -n1 --oneline --name-status | grep '^M'
于 2016-11-29T22:44:30.437 に答える
0

変更されたすべてのファイルを一覧表示するには、次を使用します。

git show --stat --oneline HEAD
于 2018-07-27T04:08:08.920 に答える
0

すべての素晴らしい答え。FEIだけで、「git checkout」(同じブランチへの切り替えまたは同じブランチ内での切り替え)は、変更されたファイルのみを表示するように見えます。

于 2019-05-20T14:32:50.807 に答える
0

1つの代替方法は、-s表示される内容を制限できる1行に結果を表示することです。

git status -s

Gitステータスの画像-s

Powerline /Poshgitを使用したWindowsターミナルの下に表示されます。


このコマンドは非常に便利なので、次のように使用されるエイリアスとして追加しましたgit stati

[alias]
   stati = !git status -s
于 2022-02-20T22:25:28.460 に答える