如何忽略Git存储库中先前提交的文件?

的.gitignore文件没有在已经提交的文件进行操作。要忽略对意外暂存或提交的文件所做的更改,应执行以下操作:

  • 步骤1-从临时区域中删除此类文件或目录

  • 第2步-提交存储库中的更改

  • 第3步-在.gitignore文件中添加此类文件或目录的路径

  • 步骤4-提交对存储库的更改

让我们通过一个例子来理解这一点-

在工作目录中以名称“ bin”创建一个文件夹。在文件夹内添加一个文件“ temp.bin”,其中包含一些内容,然后提交更改。

$ mkdir bin                    //创建一个目录
$ echo hello>bin/temp.bin      //在目录中创建一个文件temp.bin
$ git add bin/temp.bin         //记录暂存区中的更改
$ git commit −m ‘add temp.bin’ //commit the change

commit命令的输出表明该文件已被永久添加到存储库中。

[master dd1a3a8] add tremp.bin
1 file changed, 1 insertion(+)
create mode 100644 bin/temp.bin

在文件“ temp.bin”中再增加一行。使用git status命令检查是否跟踪此更改。

$ echo hello again > bin/temp.bin
$ git status

输出如下所示,并显示已跟踪更改。

Changes not staged for commit:
(use “git add <file>...” to update what will be committed)
(use “git restore <file>..” to discard changes in working directory)
modified : bin/temp.bin
No changes added to commit

现在让我们说稍后,我们决定应忽略对“ bin”文件夹的更改由于已提交文件,因此将“ bin”文件夹添加到.gitignore文件不会有任何效果。为了忽略对提交的文件的更改,请执行以下操作:

步骤1-从临时区域中删除“ bin”文件夹-重要的是要记住,提交的文件不会自动从临时区域中删除。因此,让我们首先从临时区域中删除文件。这可以使用git rm--cached -r命令来实现。该命令的语法是-

git rm −−cached −r <file−name> OR
git rm −−cached −r <folder−name>

现在让我们删除“ bin”文件夹。

$ git rm −−cached −r bin/

上面命令的输出显示在屏幕截图中-

rm ‘bin/temp.bin’

使用git ls-files验证是否从临时区域中删除了文件夹。

$ git ls−files

输出表明该文件夹已从暂存区中删除。

.gitignore

第2步-提交存储库中的更改

$ git commit m ‘deleted bin folder from tracking’

验证输出以确认更改已提交。

dell@DESKTOP−N961NR5 MINGW64 /e/tut_repo (master)
$ git commit −m bin 'deleted bin folder from tracking changes'
[master 593aacd] deleted bin folder from tracking changes
   1 file changed, 1 deletion (−)
   delete mode 100644 bin/temp. bin

步骤3-在“ .gitignore ”文件中添加“ bin”文件夹。我们假设.gitignore文件已经存在。

$ echo bin/ >>.gitignore

现在,将更改添加到登台区域。

$ git add .gitignore

步骤4-提交对存储库的更改

$ git commit −m ‘modified .gitignore to add bin/’

步骤5-要验证Git是否正在跟踪“ bin”文件夹,让我们对“ temp.bin”文件进行更改,然后执行git status命令。

$ hello again from nhooo >>bin/temp.bin
$ git status

输出证明Git完全忽略了在“ bin”文件夹中执行的更改。

On branch master
Nothing to commit, working tree clean