我似乎陷入了一个奇怪的git循环。
我跑:
git add -A
git commit -m "Config updates"
我得到了:
nothing to commit, working directory clean
所以我做了一个git pull:
git pull -u origin master
我被告知:
error: Your local changes to the following files would be overwritten by merge:
wp-config.php
Please, commit your changes or stash them before you can merge.
所以,是的,嗯,来自git的反馈。
我该怎么办?
我已尝试专门添加该文件,即git add wp-config.php
,没有骰子。还尝试使用--f标志和所有排序。我似乎只是陷入了这个循环中。
答案 0 :(得分:1)
事实证明解决方案相对简单,虽然我有一种感觉,给出了其他答案,我的情况相当具体(这些人清楚地了解git的内部工作方式比我更多)。
git rm wp-config.php
足以清除文件(没有在本地仓库中注册delete
)准备拉。因此,如果你最终处于类似的情况,这是一个简单的事情,无需重新调整或开始搞乱太多事情。
答案 1 :(得分:0)
git add -A
将Git已经跟踪的所有文件添加到索引中。所以它实质上更新了它知道的任何文件。从您当前签出的版本开始,wp-config.php
不是存储库的一部分,但只是本地文件。您可以使用git status
验证这一点。
现在,您想要拉入的远程更改知道wp-config.php
,并且在拉动时要包含文件的更改。因此,Git警告您,您有一个未被Git跟踪的本地文件,该文件将被合并覆盖,因为新版本需要跟踪该文件。
所以你有三个选择:
wp-config.php
的远程版本没问题,那么你可以删除你的本地文件并执行合并。或者您也可能决定根本不应跟踪wp-config.php
(因为它可能是特定于本地计算机的配置文件),因此错误地添加了它。在这种情况下,您可以单独检出远程分支,在新提交中删除该文件,然后执行合并:
git checkout -b original origin/master
git rm wp-config.php
git commit -m 'Remove accidentally added wp-config.php'
git checkout master
git merge original
git branch -d original
答案 2 :(得分:0)
重新启动您的分支,然后提交更改
git fetch origin
git rebase
git commit -am "Your-Message"