什么是 git rm 命令
git rm 命令可以从 git 存储库中删除特定文件或者一组文件。
我们还可以使用它从工作目录和暂存索引中删除文件。
但是不可能仅从工作目录中删除文件。
git rm 命令也不会删除分支。
在 Git 中,被忽略的文件在一个名为 .gitignore 的文件中进行跟踪。
我们有机会在此文件中添加我们不希望 Git 跟踪的文件路径和目录路径。
几乎所有使用 Git 的程序员都渴望学习如何停止跟踪已插入到 git 存储库中的文件。
此代码旨在解释在 Git 中停止跟踪和忽略文件更改的过程。
.gitignore 将阻止将未跟踪的文件添加到 Git 跟踪的文件集中,但是,Git 将继续跟踪已被跟踪的文件,即使它们被添加到 .gitignore 中。
什么是 Git 存储库
Git 存储库用作项目文件的特殊存储。
使用 git 存储库,可以保存代码的版本以及访问它们。
如果要创建新的 git 存储库,则需要运行 git init 命令。
它用于初始化一个新的存储库。
另一个一次性操作是 git clone 命令,借助该命令,我们可以创建现有存储库的克隆。
忽略对文件的更改
如果我们有一个被跟踪的文件并想忽略它,则需要将该文件或者目录的路径添加到 .gitignore 文件中。
之后,我们需要告诉 Git 不要跟踪它。
为此,我们应该运行以下命令:
git rm --cached <file-path>
如果要对文件夹而不是文件执行此操作,则应将 -r 选项添加到上面的命令中,如下所示:
git rm -r --cached <folder-path>
上面的命令为我们保留本地忽略的文件或者目录。
但是,如果其他人拉动,这些文件将被他删除。
假设我们有一个包含大量文件的文件夹。
以下命令指示 Git 每次都停止检查该文件夹是否有更改,因为它不会有任何更改。
--assume-unchanged 索引将被重置,如果在我们拉取时对文件或者文件夹进行了上游更改,则文件将被覆盖。
由于这个想法忽略了本地更改,我们可以通过运行 git reset --hard 命令删除所有这些更改。
git update-index --assume-unchanged <file-path>
要获取 --assume-unchanged 的目录或者文件列表,我们应该运行以下命令:
git ls-files -v|grep '^h'
以下命令将指示 Git 我们需要自己的文件或者文件夹的独立版本。
之后,对该文件所做的任何更改都不会在 Git 中标记为更改。
git update-index --skip-worktree <file-path>
什么是 .gitignore 文件
通常,Git 将工作副本的文件分类为 3 件事:
- 跟踪文件 - 之前提交或者暂存的文件;
- 未跟踪的文件 - 之前未提交或者暂存的文件;
- 被忽略的文件 - 已被命令忽略的文件。
在工作副本中,文件对 git 可见,为未跟踪、已跟踪或者忽略。
忽略的文件是那些你告诉 Git 忽略的文件。
如果要提交此类文件,则应从存储库源中派生它们。
被忽略的文件存储在名为 .gitignore 的文件中。
没有 git ignore 命令,因此我们应该手动编辑和提交这些文件。