如何在本地忽略本地更改git中的远程更改?

时间:2018-04-30 14:04:52

标签: git

我有一台服务器。我的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。我想忽略该文件的变化。

2 个答案:

答案 0 :(得分:0)

git reset --hard HEAD
git clean -df
git pull origin master

基本上:

  1. 重置本地更改
  2. 删除您已创建的所有新文件(如果需要)
  3. 从远程拉

答案 1 :(得分:0)

如果你在这里处理的是登录凭证(用户名和密码),那么最好不要将这些文件提交到git中。而是使用未跟踪的文件来存储您的凭据 - 这样您就可以在本地开发环境和生产环境之间进行交换。

我建议将包含凭据的文件添加到.gitignore file,以便git始终忽略此文件,而不会跟踪任何更改。

现在,您可以在本地计算机上拥有一个文件,并在生产中使用另一个文件 - 两者都包含用户名&密码,因此您的代码不需要知道两个环境之间的差异。

我会建议您存储用户名&密码在他们自己的文件中 - 不在connection.php文件中,因为逻辑很可能不依赖于生产/本地环境。