当git中有多个文件更改时,如何只向远程存储库添加和提交一个文件

当git中有多个文件更改时,如何只向远程存储库添加和提交一个文件,git,Git,我知道以前有人问过我的问题,但其他问题的一些评论让我感到困惑,所以我想在使用git命令之前确保我的想法是正确的 假设我有3个文件(有更改),file1.java,file2.txt和file3.java。我只想将我对file1.java所做的更改提交到远程repo,但我不想从本地机器上删除其他两个文件的更改。如何仅提交file1.java 根据我所阅读的内容,下面的命令将起作用 #1 git add file1.java git commit -m "Comments" 但后来我看到有人在评论

我知道以前有人问过我的问题,但其他问题的一些评论让我感到困惑,所以我想在使用git命令之前确保我的想法是正确的

假设我有3个文件(有更改),
file1.java
file2.txt
file3.java
。我只想将我对
file1.java
所做的更改提交到远程repo,但我不想从本地机器上删除其他两个文件的更改。如何仅提交
file1.java

根据我所阅读的内容,下面的命令将起作用

#1
git add file1.java
git commit -m "Comments"
但后来我看到有人在评论

This is regular git commit, but for partial file commit -p or -e is needed
我看到的另一个解决方案是

#2
git add file01.txt
git stash
git commit -m'commit message'
git stash pop

什么是正确的命令?他们都对吗?我怀疑通过执行git commit,即使我只添加了一个文件,它仍然会提交所有更改(即所有3个文件)

对于那些可能像我一样困惑的人,下面是为我做的。但其他解决方案也可能奏效

git add file1.java
git commit -m "Comments"

#1号好
git add file
(与
git stage file
相同)将文件的当前状态添加到索引中
git提交
提交索引的状态。由于您没有
git add file2.java
,因此该文件中的任何更改都不在索引中,也不会由
git commit
提交。没有必要在提交时隐藏/弹出。这是一个不理解git的人。