我的本地文件系统中有文件和文件夹(比如settings.py和migrations /文件夹)我不想再跟踪了。 (当我在远程服务器上推送代码时,第一次跟踪它们。)
我想要的内容:当我在远程服务器上运行git pull
时,我只更新跟踪的代码并让settings.py
和migrations/
文件夹关闭更新
所以这就是我的所作所为:
(在我的本地文件系统上)
首先,
I added `myapp/settings.py` and `migrations/` in my .gitignore file.
然后,
git rm --cached myapp/settings.py
git rm --cached -r migrations/
git add .
git commit -m "remove settings.py and migrations folder"
git push -u origin master
从我的GitHub存储库成功删除了settings.py文件和迁移文件夹。
我的问题:当我在远程服务器上运行git pull
时(当settings.py和migrations文件夹有修改时),就好像settings.py和migrations文件夹一样仍然被追踪。 :
$me@server git pull origin master
....
error: Your local changes to the following files would be overwritten by merge:
migrations/0001_initial.py
myapp/settings.py
Please, commit your changes or stash them before you can merge.
Aborting
我希望服务器忽略这些更改,因为我没有从我的回购中删除它们。
另一个有用的信息?:
我不知道这是否可以帮助但我不想将更改从我的遥控器提交到GitHub仓库,我只想从GitHub仓库中提取更改(因为'正确'代码必须来自我的本地仓库,除了在远程上不同的settings.py和migrations文件夹。
因此,如果可以提供任何帮助,这是我的远程服务器上git status
的结果:
# On branch master
# Your branch is behind 'origin/master' by 5 commits, and can be fast-forwarded.
#
# Changes not staged for commit:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# deleted: catalog/migrations/0004_auto_20150115_1214.pyc
# deleted: catalog/migrations/0005_auto_20150116_0855.py
# deleted: catalog/migrations/0005_auto_20150116_0855.pyc
# deleted: catalog/migrations/0006_auto_20150119_1153.py
# modified: myapp/settings.py
#
非常感谢您的帮助!
答案 0 :(得分:0)
我没有测试副本提供的解决方案(但会定义测试是否再次出现相同的问题),因为我已经做了一些解决我问题的方法: 我只是删除了远程存储库并再次在远程执行git克隆,现在,这个远程存储库的行为符合预期。
答案 1 :(得分:-1)
删除文件后,执行git add .
这可能会再次添加文件,除非您已将其添加到gitignore file。