我在github上创建了一个repo,原始仓库中包含了一些照片,我重新设计了我的项目并在本地删除了不需要的照片,然后将我的更改推送到github。旧照片仍保留在github repo中......如何删除它们?我错过了某个地方吗?我是一个新手,这对我来说非常具有挑战性。谢谢!
答案 0 :(得分:1)
好吧,首先,看起来您的问题源于 local 存储库和远程存储库之间的差异。本地是您正在编辑的计算机上的东西 - 但是远程是GitHub服务器上的那个。如果您在本地更改内容,除非您运行其他一些命令,否则它不会更改远程内容。如果你正在使用Git命令行,你应该学习三件事。
A:git push
git push
是Git命令将文件发送到远程服务器。使用cd
机动到适当的存储库,使用git checkout <name>
选择您的分支,然后调用git push
,这会将这些更改发送到网站并保留。
B:git pull
git pull
与push
完全相反:如果后者将内容发送到服务器,则pull
将其关闭,并将远程更改应用于本地存储库。就像push
一样,操纵到存储库和分支,以及git pull
。 (旁注:git fetch
是一个类似的命令,除了它不会覆盖本地更改,而是将更改隐藏在秘密.git
文件夹中,以便稍后合并 - 事实上,pull
在一个命令中使用fetch
和merge
作为两步过程。但不要过于担心。)
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)
您需要从本地和GitHub存储库purge the files。 GitHub使用git-filter-branch提供了一些分步说明,但最简单的方法是using BFG。例如:
bfg --delete-files \*.jpg
您可以从项目的网站了解有关BFG Repo-Cleaner的更多信息,包括功能和选项。
请注意,一旦从存储库中清除了文件,就需要将修改后的历史记录强制推送到GitHub,其他人可能需要重新克隆新存储库。过滤后的存储库的DAG通常会使下游克隆与新历史图表同步而不进行重新克隆变得困难(尽管并非总是不可能)。但是,YMMV。