我经常使用IDE或命令行(不是通过git mv)在git存储库中移动文件.
因此,我最终会在下次提交时删除几个未暂存的文件,如下所示:
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: test.html
#
# Changes not staged for commit:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# deleted: css/bootstrap.css
# deleted: css/bootstrap.min.css
# deleted: img/glyphicons-halflings-white.png
# deleted: img/glyphicons-halflings.png
# deleted: js/bootstrap.js
# deleted: js/bootstrap.min.js
Run Code Online (Sandbox Code Playgroud)
我通常会选择所有已删除的文件并在文本编辑器中编辑它们,以产生如下:
git rm css/bootstrap.css
git rm css/bootstrap.min.css
git rm img/glyphicons-halflings-white.png
git rm img/glyphicons-halflings.png
git rm js/bootstrap.js
git rm js/bootstrap.min.js
Run Code Online (Sandbox Code Playgroud)
然后我将其扔回控制台.
有没有办法在不必复制/粘贴的情况下执行此操作?
lar*_*sks 54
如果我没有理解你的问题,你想提交你删除...也就是说,要执行相当于git rm对所有该显示为删除的文件. git clean不会这样做.
你可以运行git add -u:
仅匹配索引中已跟踪的文件而不是工作树.这意味着它永远不会暂存新文件,但它会暂存已修改的跟踪文件的新内容,并且如果已删除工作树中的相应文件,它将从索引中删除文件.
这将获取对跟踪文件的所有更改,包括删除.所以,如果你从这开始:
# Changes not staged for commit:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# deleted: file2
# deleted: file3
# deleted: file4
# deleted: file5
Run Code Online (Sandbox Code Playgroud)
跑步git add -u会让你这样:
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# deleted: file2
# deleted: file3
# deleted: file4
# deleted: file5
Run Code Online (Sandbox Code Playgroud)
此时提交将做正确的事情.