【发布时间】:2018-09-29 01:41:49
【问题描述】:
我有一些尚未添加到 git 的新文件;我不确定我会不会,我还没有决定。但我想获取服务器中最新的内容。
但是,当我执行 git pull 时,我收到错误 error: Your local changes to 'XXXX' would be overwritten by merge. Aborting.,其中 XXXX 是我的新文件。
我如何告诉 git 从服务器下载更改和新文件,告诉我服务器上的内容与我对存储库中已有文件的本地修改之间可能存在的冲突,同时又不会因为我有而中止本地新文件?
我不想将它们添加到 .gitignore,因为我经常遇到这种情况,并且我不想一直在 .gitignore 中添加和删除文件以获取一些愚蠢的东西......尤其是因为我不想不想冒忘记某个文件的风险,最终我会决定将它添加到存储库中,所以我希望git status 继续告诉我有关它们的信息。有时我想忽略新文件时运行git status -uno,然后有时我运行git status 来查看新文件并决定保留哪些内容以及丢弃哪些内容。但我找不到 git pull 的等效选项。
我在谷歌上的尝试将我带到了想要用存储库中的内容或其他类似情况覆盖其本地更改的人。 :( 阅读文档后,我发现我可以使用git fetch 来更新我的本地存储库,这没有产生任何错误,但它也没有给我的工作副本带来更改。我可以' t 弄清楚之后的下一步。:-/ 无论如何,一个没有错误的pull 是理想的......
【问题讨论】:
-
提交您的更改,然后拉取,然后
git reset origin/master撤消您的本地提交(但将文件保留在您的工作目录中)。这是一种非常安全且简单的方法。 -
这可能会导致合并冲突,可能不是 OP 想要的。
-
mm... 建议是暂时提交所有内容以便能够拉取,然后将其重置为以前的状态?是的,似乎不是我想要的。如果我理解正确,我将丢失我对代码所做的任何未提交的更改。
-
这不是重复的,因为我的问题的核心是不丢失不属于(本地或远程)存储库的文件,这在另一个问题中甚至没有提到。我不知道如何编辑我的帖子以使其更清晰,因为它在标题和第一段中。