Github删除不需要的文件

时间:2015-11-03 17:44:28

标签: git github

我在github上创建了一个repo,原始仓库中包含了一些照片,我重新设计了我的项目并在本地删除了不需要的照片,然后将我的更改推送到github。旧照片仍保留在github repo中......如何删除它们?我错过了某个地方吗?我是一个新手,这对我来说非常具有挑战性。谢谢!

3 个答案:

答案 0 :(得分:1)

好吧,首先,看起来您的问题源于 local 存储库和远程存储库之间的差异。本地是您正在编辑的计算机上的东西 - 但是远程是GitHub服务器上的那个。如果您在本地更改内容,除非您运行其他一些命令,否则它不会更改远程内容。如果你正在使用Git命令行,你应该学习三件事。

A:git push
git push是Git命令将文件发送到远程服务器。使用cd机动到适当的存储库,使用git checkout <name>选择您的分支,然后调用git push,这会将这些更改发送到网站并保留。

B:git pull
git pullpush完全相反:如果后者将内容发送到服务器,则pull将其关闭,并将远程更改应用于本地存储库。就像push一样,操纵到存储库和分支,以及git pull。 (旁注:git fetch是一个类似的命令,除了它不会覆盖本地更改,而是将更改隐藏在秘密.git文件夹中,以便稍后合并 - 事实上,pull在一个命令中使用fetchmerge作为两步过程。但不要过于担心。)

C :(可选)git sync
如上所述,pull实际上只是git fetch然后git merge FETCH_HEAD的快捷方式。并且,以类似的方式,git sync是一个方便的命令,其别名为!git pull && git push - 换句话说,它同时拉动推送更改。我个人更喜欢永远同步,但有时你可能更愿意只使用其中一种。

这应该是对您的问题最简单的解决方法,但如果这不能解决问题,请查看其他答案。也许问题并不像我想象的那么复杂。在任何情况下,一旦你可以,请花一点时间浏览一下GitHub桌面客户端,它可以为你处理大部分内容,以及更多,并通过一个更简单的界面满足你想要用git做的大部分事情。

PS:未来的提示,请查看输入git help时出现的命令。在使用任何内容之前,请使用git help <command name>,例如git help commit

答案 1 :(得分:0)

您可以随时使用:

git rm nameofpic.jpg
git commit -m&#34;从git repo&#34;

中删除文件

答案 2 :(得分:0)

使用git-filter-branch或BFG

您需要从本地和GitHub存储库purge the files。 GitHub使用git-filter-branch提供了一些分步说明,但最简单的方法是using BFG。例如:

bfg --delete-files \*.jpg

您可以从项目的网站了解有关BFG Repo-Cleaner的更多信息,包括功能和选项。

请注意,一旦从存储库中清除了文件,就需要将修改后的历史记录强制推送到GitHub,其他人可能需要重新克隆新存储库。过滤后的存储库的DAG通常会使下游克隆与新历史图表同步而不进行重新克隆变得困难(尽管并非总是不可能)。但是,YMMV。