该的.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