我有两个简明的问题:
注意: 我知道我可以进行初始提交以跟踪文件,并从那里开始跟踪我的文件.但有可能专门做我上面提到的问题吗?
我尝试使用git add -N <expr>
但它跟踪文件并添加它以进行提交:
PS C:\> git add -N fileA
PS C:\> git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: fileA
#
# 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: README.md
# modified: composer.lock
# modified: fileA
#
Run Code Online (Sandbox Code Playgroud)
如果我做git reset HEAD fileA
或不git rm --cached fileA
删除它,但也解开文件.这个命令git rm fileA
建议我使用标志-f来删除文件.
那么,有可能只跟踪而不是阶段,并且只能展开但不是未跟踪文件?
Von*_*onC 37
更新(2015年5月)
我尝试使用
git add -N <expr>
但它跟踪文件并添加它以进行提交:
即将到来的Git 2.5(2015年第二季度)已不再是这种情况.
请参阅"使用后文件未进入提交git add -N
"
原始答案(2013年3月)
如何在不删除文件的情况下取消提交文件?
这是官方的方式:
git reset HEAD fileA
Run Code Online (Sandbox Code Playgroud)
但是因为它是一个新文件,你也可以解开它(从索引中删除它,而不会引用任何先前的提交).
开始跟踪文件意味着将其置于索引(阶段)或提交中.
我建议为这些文件创建一个分支,以便在那里添加/提交它们.
请参阅" GIT上下文中的跟踪文件和未跟踪文件是什么? "
- 跟踪文件是最后一个快照中的文件 ; 它们可以不被修改,修改或分阶段.
- 未经跟踪的文件是其他所有内容 - 工作目录中的任何文件都不在您的上一个快照中且不在您的暂存区域(索引)中
这意味着,对于一个新文件,未分阶段意味着要跟踪它.
(来源:Pro Git Book,2.2 Git Basics - 记录对存储库的更改)
(谢谢你,louisfischer,评论中的更新/修复)
另请参阅" git - 如何判断文件是否被git跟踪(通过shell退出代码)? ".