Git在很多操作中都有--force
标志但是当我使用它们时我觉得有点奇怪。就像忽略我的代码中的警告信息一样。
例如,我只想取消暂存文件并执行此操作:
git rm --cached myfile.ext
git抱怨错误:
以下文件已暂存与文件和文件不同的内容 HEAD
我真的不关心这个错误,它似乎不是一个问题 - 我只是想保留我的代码,但是取消暂存文件。 --force
旗只是解决了这个问题。
我的问题关于最佳做法,因为我无法找到有关此问题的任何信息 - 应该在git命令中使用强制标记还是不好的做法?
更新
我发现了我的这个问题并且有一些见解,我对任何有兴趣的人都有用。
force
标志就像是git(或任何类似软件)中的yes/no
对话框。就像做某些可能失败或损坏的东西一样,我们会得到yes/no
对话框。因此git
相当于yes
--force
,这回答了force
标记用法仅仅是正常例程的问题。
答案 0 :(得分:6)
--force
并不意味着抓住机会尝试可能出错的事情,而是强制执行可能发生冲突的行动。所以我同意使用--force
并不是一种不好的做法。
你经常想要的是:覆盖git命令的一些检查以防止你做一些愚蠢的事情。如果您注意到警告并且知道该命令将成功,那么使用force
并没有什么不好。请参阅the docs(或命令行上的git帮助页面)以查看每个命令的覆盖内容。
另一个用例是从您不想要或不能处理用户交互的脚本运行命令时避免确认提示。
答案 1 :(得分:3)
首先,to unstage,你会做git reset -- file
。
第二,确保使用--force
并不是一种不好的做法
一个常见示例是当您要向源控件添加一个文件时,该文件是被忽略文件的一部分(在.gitignore
中声明)
git add --force -- aFile
不要忘记其中一些命令(如git add
)具有“预览”或“干运行”模式(-n
选项)。另一个好的做法是使用-n
选项测试命令。