如何从 Git 仓库中删除已提交的文件?
Git 允许您使用以下任何一种方法从仓库中删除文件:
使用 Linux 的 rm 命令
使用 git rm 命令
场景 1 - 使用 Linux rm 命令
Linux rm 命令的语法如下:
$ git rm <file_name>
假设仓库中存在一个名为“file1.python”的文件。使用 Linux rm 命令删除文件“file1.python”。
$ git rm file1.python
首先,让我们验证文件是否已从工作目录中删除。这可以通过使用 Linux ls 命令来验证。
$ ls
输出表明文件已从工作目录中删除。
dell@DESKTOP−N961NR5 MINGW64 /e/tut_repo (master) $ Is
现在,让我们验证文件是否也已从暂存区中删除。
使用 git 命令 ls−files 来验证。
$ git ls−files
上述代码的输出为:
file1.python
从输出中可以清楚地看到,该文件尚未从暂存区中删除。这意味着使用 Linux 命令执行的添加、重命名或删除文件等更改不会自动暂存。此类更改应使用 git add 命令显式暂存,然后提交。
$ git add file1.python
执行 ls−files 命令。操作的状态也可以使用 git status 命令进行验证。
$ git ls−files $ git status
上述命令的输出显示在屏幕截图中。
On branch master Changes to be committed: (use “git restore --staged <file>...” to unstage) deleted:file1.python
该文件已从暂存区中删除。现在让我们最终提交更改。
$ git commit -m ‘removed unused python file’
该文件已永久从仓库中删除。请参阅下面的屏幕截图以查看输出。
[master 81e32c4] removed unused python file 1 file changed, 2 deletions (-) delete mode 100644 file1.python
场景 2 - 使用 git rm 命令
git rm 命令的语法如下:
git rm <file_name>
假设仓库中存在一个名为“file1.js”的文件,让我们使用 git rm 命令删除该文件。
$ git rm file1.js
让我们使用 git ls−files 命令来验证文件是否已从暂存区中删除。
$ git ls−files
我们也可以使用 git status 命令来验证文件是否已从暂存区中删除。
$ git status
从输出中可以清楚地看到,使用 git rm 命令删除的文件会从工作区和暂存区中删除。请参阅下面的屏幕截图以查看输出。
On branch master Changes to be committed: (use “git restore −−staged <file>...” to unstage) deleted:file1.js
现在让我们提交更改并验证输出。
$ git commit −m ‘remove unused js file’
输出表明该文件已永久从仓库中删除。
[master dc7861e] removed unused js file 1 file changed, 1 deletion(−) delete mode 100644 file1.js
广告