为了账号安全,请及时绑定邮箱和手机立即绑定

如何从git repo中删除文件?

如何从git repo中删除文件?

Git
当年话下 2019-08-05 16:35:21
如何从git repo中删除文件?我添加了一个名为"file1.txt"git repo 的文件。从那以后,我犯了,增加了几个目录,名称dir1和dir2,并承诺他们混帐回购协议。现在当前的回购有"file1.txt",dir1和dir2。我怎样才能删除"file1.txt",而不会影响其他人一样dir1和dir2?
查看完整描述

3 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

git rm file.txt从repo中删除文件,但也从本地文件系统中删除它

要从repo中删除文件而不从本地文件系统中删除它,请使用:
git rm --cached file.txt

下面的确切情况是我使用git维护我公司网站的版本控制,但“mickey”目录是一个tmp文件夹,用于与CAD开发人员共享私人内容。当他需要巨大的文件时,我创建了一个私有的,未链接的目录和ftpd文件,供他通过浏览器获取。忘了我做了这个,后来我git add -A从网站的基目录中执行了一个。随后,git status显示需要提交的新文件。现在我需要从git的跟踪和版本控制中删除它们......

下面的示例输出来自我刚刚发生的事情,我无意中删除了该.003文件。值得庆幸的是,我不关心本地副本发生了什么.003,但其他一些当前更改的文件是我刚刚对网站进行的更新,并且将在本地文件系统上删除史诗!“本地文件系统”=实时网站(不是很好的做法,但却是现实)

[~/www]$ git rm shop/mickey/mtt_flange_SCN.7z.003

error: 'shop/mickey/mtt_flange_SCN.7z.003' has local modifications

(use --cached to keep the file, or -f to force removal)

[~/www]$ git rm -f shop/mickey/mtt_flange_SCN.7z.003

rm 'shop/mickey/mtt_flange_SCN.7z.003'

[~/www]$ 

[~/www]$ git status

# On branch master

# Changes to be committed:

#   (use "git reset HEAD <file>..." to unstage)

#

#   deleted:    shop/mickey/mtt_flange_SCN.7z.003

#

# Changed but not updated:

#   (use "git add <file>..." to update what will be committed)

#   (use "git checkout -- <file>..." to discard changes in working directory)

#

#   modified:   shop/mickey/mtt_flange_SCN.7z.001

#   modified:   shop/mickey/mtt_flange_SCN.7z.002

[~/www]$ ls shop/mickey/mtt_flange_S*

shop/mickey/mtt_flange_SCN.7z.001  shop/mickey/mtt_flange_SCN.7z.002

[~/www]$ 

[~/www]$ 

[~/www]$ git rm --cached shop/mickey/mtt_flange_SCN.7z.002

rm 'shop/mickey/mtt_flange_SCN.7z.002'

[~/www]$ ls shop/mickey/mtt_flange_S*

shop/mickey/mtt_flange_SCN.7z.001  shop/mickey/mtt_flange_SCN.7z.002

[~/www]$ 

[~/www]$ 

[~/www]$ git status

# On branch master

# Changes to be committed:

#   (use "git reset HEAD <file>..." to unstage)

#

#   deleted:    shop/mickey/mtt_flange_SCN.7z.002

#   deleted:    shop/mickey/mtt_flange_SCN.7z.003

#

# Changed but not updated:

#   modified:   shop/mickey/mtt_flange_SCN.7z.001

[~/www]$

更新:这个答案正在获得一些流量,所以我想我会提到我的其他Git答案分享了几个很棒的资源:这个页面有一个图形,帮助我揭开Git神秘面纱。在“临Git的”一书是在网上,并帮助了我很多。


查看完整回答
反对 回复 2019-08-05
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

如果您的文件已经在GitHub上,您现在(2013年7月)可以直接从Web GUI中删除它!

只需查看存储库中的任何文件,单击顶部的垃圾桶图标,然后像任何其他基于Web的编辑一样提交删除。

然后git pull在你的本地仓库上“ ”,这也将在本地删除该文件。
这使得这个答案成为一种从git repo删除文件的方法(迂回)?
(且不说在GitHub上一个文件在“混帐回购协议”)

(提交将反映删除该文件):

就这样,它已经消失了。

有关这些功能的帮助,请务必阅读有关创建移动重命名删除文件的帮助文章。

注意:由于它是一个版本控制系统,如果您以后需要恢复文件,Git总会退缩。

最后一句意味着删除的文件仍然是历史记录的一部分,您可以轻松地恢复它(但尚未通过GitHub Web界面):

请参阅“ 在Git仓库中恢复已删除的文件 ”。


查看完整回答
反对 回复 2019-08-05
  • 3 回答
  • 0 关注
  • 1066 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信