我正在尝试学习使用 Git,并且我有点了解拉和推等的基础知识,但我对删除感到困惑。
这就是我所做的(使用 fortrabbit 和 laravel):
- 创建了一个 Laravel 项目
git init .
在项目文件夹中运行- 跑
git remote add origin ...
- 跑
git add -A
- 跑
git commit -am 'Initial'
- 跑
git push -u origin master
现在我的本地副本与我的远程副本匹配。
我现在想删除一个文件,所以我创建了一个测试文件:
- 跑
touch testfile1.php
我添加文件,提交它然后推送它。现在我在本地和远程都有测试文件。
问题是删除它。这个问题分为两部分:
阅读这个 SO 问题:如何从 git repo 中删除文件?它说我应该这样做:
git rm testfile1.php
git commit -m 'deleted file'
git push origin master
但是,这只会删除本地副本。远程副本还在!
如果我从本地副本中删除它,它如何也从远程版本中删除?
我的第二个问题是,如果其他人有副本,他们怎么知道我已经删除了该文件?如果他们将副本推回远程副本,它不只是重新添加已删除的文件吗?
任何帮助表示赞赏。
编辑
这是命令的输出,以及git rm
命令后的远程版本:
第一张图片是我在输入git rm testfile1.php
文件。然后它输出rm testfile1.php
并返回到提示。当我 SSH 回到远程版本时,testfile`.php 仍然存在:/
另一个编辑
我刚刚阅读了 Fortrabbit 提供的一些帮助文章,主要是这个:http ://help.fortrabbit.com/git#toc-behind-the-scenes
它说它会覆盖,但不会删除。
这会是 git 说它是最新的,但文件仍在网络根目录中的原因吗?如果是这样,出于什么原因可能不删除我要求删除的文件?!