-f选项对git rm命令意味着什么?

时间:2015-07-05 13:37:21

标签: git

我正在通过this online book学习Git。我不了解有关git rm命令的一些信息:

  

如果您修改了文件并将其添加到索引中,则必须   使用-f选项强制删除。这是一个安全功能   防止意外删除尚未记录在中的数据   快照,无法从Git中恢复。

英语不是我的母语。我在正确翻译这句话时遇到了一些问题......什么是记录在快照中的" "意思?它是"提交"?

我看到git rm 123.txtgit rm -f 123.txt一样相同,即使123.txt被更改并添加到索引中(即进入存储区域,通过{ {1}}命令):它从索引和工作目录中删除123.txt。所以,我不理解add选项含义。请为我扩展它。

其他我试过阅读this

  

要删除的文件必须与分支的提示相同,   但是,不能对索引中的内容进行更新   可以使用-f选项覆盖默认行为。

还有:

  

-f
  -f
  覆盖最新的检查。

分支的" 提示是什么"? --force选项是什么?

2 个答案:

答案 0 :(得分:1)

尝试使用git repo中的文件进行更改并将其删除。例如:

x = -27
if x < 0:
    pow = -((-x) **(1/3))
elif x > 0:
    pow = x **(1/3)
else:
    pow = 0

并尝试删除它:

 $ git status
 # On branch master
 # Your branch is up-to-date with 'origin/master'.
 # nothing to commit, working directory clean

 $ echo "a" >> http.c

你会得到:

 $ git rm http.c

因此,git rm http.c error: the following file has local modifications: http.c 选项将允许删除它:

-f/--force

答案 1 :(得分:1)

很多问题。

需要-f,因为git不知道您是否要在删除之前保存当前更改。您被警告并可以在删除之前选择提交。这样,如果您决定复活该文件,则不会丢失进度。

添加文件会将其更改从工作副本(本地目录)移动到暂存区域。这是一个您可以在提交之前进行更改并查看它们的区域。

git diff --staging

记录快照将是一个提交但是从你所说的我想知道暂存是否也被视为快照。当我稍后在电脑附近并更新

时,我将不得不尝试

分支的提示是您对该分支的最后一次提交。这是在您添加到暂存之后

git commit

简而言之,-f是你说'我不关心变化,只是删除'。