git - 如何暂时忽略 git pull 上未跟踪的文件?

标签 git pull

我有一些新文件还没有添加到 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 来更新我的本地存储库,这没有产生任何错误,但它也没有将更改带到我的工作副本。在那之后我想不出下一步。:-/在任何情况下,一个没有错误的 pull 将是理想的......

最佳答案

您必须先将其存储并在从远程 pull 后应用更改,或者将当前分支重置为上次提交。重置分支将导致您丢失更改。

git stash

// after you have pulled from remote
git stash apply 
// OR
git stash pop

可以找到关于applypop 之间区别的很好的解释 here


您还可以选择使用以下命令重置当前分支。

git reset --hard

关于git - 如何暂时忽略 git pull 上未跟踪的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49906059/

相关文章:

image - Docker:无法从损坏的拉取中删除中间图像

git pull 返回,致命 : protocol error: bad line length character: No s

git - 为什么在 Visual Studio Code 中执行 git pull 后我有未提交的更改?

macos - 在没有管理员权限的情况下在 OS X 上安装 Git 客户端

git - 本地使用github,无需发布到github服务器

ruby - Capistrano错误: could not connect to ssh-agent

Git 只抓取一个目录

git - 在 Bitbucket 上恢复 merge 的 pull 请求

github - GIT:创建具有还原更改的新分支

git - `git pull --rebase` 什么时候会让我惹上麻烦?