2

我正在学习 Git。在我机器上的测试仓库中有 2 个分支:

  • master
  • testing

我确实检查testing branch并删除了文件系统上的一些文件:

helpers.php                 registry.class.php
...       session.class.php                    simpleCrud.php

然后我跑git add .

  • 我希望这些已删除的文件将从testing分支中删除并允许我提交该更改
  • 但是git status(见下图)显示它们不适用于git commit -m "Deleted some files from testing branch"

状态

  1. 有人可以告诉我我做错了什么吗?
  2. 以及如何做我想做的事?
4

2 回答 2

5

您的文件删除更改未显示在 git 的索引中的原因是您自己删除了文件而没有通知 git。

现在有两种方法可以解决这个问题。

选项1:

使用该git add -u <FILES>命令使索引中跟踪的文件反映工作树中的更改。Git 会检测你的工作树中的文件删除,并更新索引以对应这个状态。

# Example command to update the git index to
# reflect the state of the files in the work-tree
# for the two files named helpers.php and registry.class.php
git add -u helpers.php registry.class.php

选项 2:

要删除文件,而不是使用shell 中的delrm命令手动删除它,您可以直接要求 git 删除并使用git rm命令记下索引中的更改。请注意,即使您自己已经删除了文件(如您提到的情况),也可以执行此命令。

# Example command to remove two files named
# helpers.php and registry.class.php
git rm helpers.php registry.class.php

使用上述任一选项,您应该看到您的状态命令应该自动指示文件已在暂存区域中删除:

git status
# On branch testing
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   deleted:    helper.php
#   deleted:    registry.class.php
#

然后您应该能够使用该commit命令提交更改。

git commit -m "Deleted some files from testing branch"
于 2013-03-24T05:19:20.393 回答
3

你用-u旗帜为他们上演。

例如:git add -u .

于 2013-03-24T04:29:06.147 回答