Gitでは、 `git reset HEAD – ‘files/folders/patterns’`を使ってステージング領域からファイルやフォルダを削除することができます(コミットする変更)。

1.ケーススタディ


git add`まだステージングされていない

target/** 。java`ファイルがまだコミットされていません。

ターミナル

$ git add project/** /** .java

$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

        new file:   README.md
        new file:   pom.xml
        new file:   src/main/java/com/mkyong/benchmark/BenchmarkLoop.java
        new file:   src/main/java/com/mkyong/benchmark/bk/LoopSimpleTest.java
        new file:   target/generated-sources/annotations/com/mkyong/benchmark/generated/BenchmarkLoop__jmhType.java
        new file:   target/generated-sources/annotations/com/mkyong/benchmark/generated/BenchmarkLoop__jmhType__B1.java
        new file:   target/generated-sources/annotations/com/mkyong/benchmark/generated/BenchmarkLoop__jmhType__B2.java
        new file:   target/generated-sources/annotations/com/mkyong/benchmark/generated/BenchmarkLoop__jmhType__B3.java
        new file:   target/generated-sources/annotations/com/mkyong/benchmark/generated/BenchmarkLoop__loopForEach__jmhTest.java
        new file:   target/generated-sources/annotations/com/mkyong/benchmark/generated/BenchmarkLoop__loopForLoop__jmhTest.java
        new file:   target/generated-sources/annotations/com/mkyong/benchmark/generated/BenchmarkLoop__loopFor__jmhTest.java
        new file:   target/generated-sources/annotations/com/mkyong/benchmark/generated/BenchmarkLoop__loopIterator__jmhTest.java
        new file:   target/generated-sources/annotations/com/mkyong/benchmark/generated/BenchmarkLoop__loopWhile__jmhTest.java
        new file:   target/generated-sources/annotations/com/mkyong/benchmark/generated/BenchmarkLoop__loopWhite__jmhTest.java
        new file:   target/generated-sources/annotations/com/mkyong/benchmark/generated/BenchmarkLoop__sum__jmhTest.java
        new file:   target/generated-sources/annotations/com/mkyong/benchmark/generated/Main__jmhType.java
        new file:   target/generated-sources/annotations/com/mkyong/benchmark/generated/Main__jmhType__B1.java
        new file:   target/generated-sources/annotations/com/mkyong/benchmark/generated/Main__jmhType__B2.java
        new file:   target/generated-sources/annotations/com/mkyong/benchmark/generated/Main__jmhType__B3.java
        new file:   target/generated-sources/annotations/com/mkyong/benchmark/generated/Main__sum__jmhTest.java

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        .idea/        dependency-reduced-pom.xml
        jmh-benchmark.iml
        target/benchmarks.jar
        target/classes/        target/jmh-benchmark-1.0.jar
        target/maven-archiver/        target/maven-status/        target/original-benchmarks.jar
        target/original-jmh-benchmark-1.0.jar

2.解決策

これらの不要な

target/

。java`ファイルをステージングから削除するには、この


git reset HEAD-target/ `

ターミナル

$ git reset HEAD -- target/**

$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

        new file:   README.md
        new file:   pom.xml
        new file:   src/main/java/com/mkyong/benchmark/BenchmarkLoop.java
        new file:   src/main/java/com/mkyong/benchmark/bk/LoopSimpleTest.java

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        .idea/        dependency-reduced-pom.xml
        jmh-benchmark.iml
        target/....

=== 参考文献

.  https://git-scm.com/docs/git-reset[git-reset documentation]

.  https://softwareengineering.stackexchange.com/questions/119782/what-does-stage-mean-in-git[What

gitでは 'stage'は意味しますか?]

link://tag/git/[git]link://タグ/git-reset/[git reset]