我有一台服务器。我的Web项目托管在GitHub中。我在服务器中创建了一个cronjob来从GitHub存储库中提取更改。但是,由于有数据库用户,密码信息,所以我把假用户和密码放在GitHub repo页面中。我制作一个脚本并放入服务器,更改使用数据库用户和密码的文件的数据库名称和密码。每次拉动后脚本都会运行。
但是,问题是当有本地更改时,git不支持从远程拉取。
我使用git pull origin master
结果
* branch master -> FETCH_HEAD
5aef90a..f0ef960 master -> origin/master
Updating 5aef90a..f0ef960
error: Your local changes to the following files would be overwritten by merge:
README.md
Please, commit your changes or stash them before you can merge.
Aborting
现在我该怎么做才能让git忽略本地更改?
编辑1
假设我有一个假密码和用户的文件connection.php
。我想忽略该文件的变化。
答案 0 :(得分:0)
git reset --hard HEAD
git clean -df
git pull origin master
基本上:
答案 1 :(得分:0)
如果你在这里处理的是登录凭证(用户名和密码),那么最好不要将这些文件提交到git中。而是使用未跟踪的文件来存储您的凭据 - 这样您就可以在本地开发环境和生产环境之间进行交换。
我建议将包含凭据的文件添加到.gitignore
file,以便git始终忽略此文件,而不会跟踪任何更改。
现在,您可以在本地计算机上拥有一个文件,并在生产中使用另一个文件 - 两者都包含用户名&密码,因此您的代码不需要知道两个环境之间的差异。
我会建议您存储用户名&密码在他们自己的文件中 - 不在connection.php
文件中,因为逻辑很可能不依赖于生产/本地环境。