7

Git--force在很多操作中都有flag,但是当我使用它们时,我感觉有点奇怪。就像忽略我的代码中的警告消息一样。

例如,我只想取消暂存文件并执行此操作:

git rm --cached myfile.ext

git 报错:

以下文件的暂存内容与文件和 HEAD 都不同

我真的不在乎这个错误,它似乎不是问题 - 我只想让我的代码保持原样,但取消暂存文件。--forceflag 简单地解决了这个问题。

我的问题是关于最佳实践,因为我无法找到有关此问题的任何信息 -应该在 git 命令中使用强制标志还是一种不好的做法

更新

我发现了我的这个问题,并有一些见解,我对任何感兴趣的人都有用。

forceflag 有点像yes/nogit(或任何类似软件)中的对话框。就像在做某事可能失败或损坏某事时,我们通常会得到yes/no对话。所以git相当于回答了我的问题,即yes标志的使用只是一个正常的例程。--forceforce

4

2 回答 2

6

--force并不意味着冒险尝试可能出错的事情,而是在意识到可能发生冲突的情况下执行操作。所以我同意使用--force不是一个坏习惯。

你经常想要这样:覆盖一些 git 命令的检查,以防止你做一些愚蠢的事情。如果您注意到警告并且知道该命令会成功,那么使用force. 请参阅文档(或命令行上的 git 帮助页面)以查看每个命令被覆盖的内容。

另一个用例是在您不希望或无法处理用户交互的脚本中运行命令时避免确认提示。

于 2013-09-30T09:32:40.973 回答
3

首先,要取消暂存,你会做一个git reset -- file.

其次,确保使用--force不是一个坏习惯。
一个常见的例子是,当您想向源代码管理添加一个属于被忽略文件(在 a 中声明.gitignore)的文件时

git add --force -- aFile

不要忘记其中一些相同的命令(如git add)具有“预览”或“试运行”模式(-n选项)。另一个好的做法是使用该-n选项测试命令。

于 2013-09-30T09:22:07.427 回答