Git 子模块 pull 覆盖/放弃任何本地更改

标签 git git-submodules git-pull

我有一个子模块,我更改了一些本地文件。原始存储库已被修改,我现在希望 pull 子模块,但我收到一条错误消息,提示我将丢失我的更改。

我如何强制 git 忽略本地更改并进行 pull ?

我知道有很多类似的问题,但我在堆栈溢出中找不到可以回答我的特定问题(特别是子模块)的问题。

最佳答案

git reset --hard 正是这样做的 - 丢弃所有更改并返回到 HEAD

或者您可以使用 git stash 并在 pull 之后 - git stash apply 来恢复您对更新树的更改。

如果一个子模块包含另一个子模块,则可以递归完成

# reset current directory
git reset --hard
# reset all submodules
git submodule foreach --recursive git reset --hard

关于Git 子模块 pull 覆盖/放弃任何本地更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14181964/

相关文章:

git - 为什么我的 git 历史看起来像一棵圣诞树?

git - 使用 Git 的分支/主标记修订增量

git - Jenkins Git Refspec 未正确替换分支说明符

git - 在 Azure DevOps 存储库中 check out 另一个项目中的子模块

Git 子模块未从 git-svn 存储库更新

Git - merge 到未更新的分支

git - 使用 `git commit --amend` 后旧提交会发生什么?

java - 带有 GIT 命令的 ProcessBuilder 没有给出结果

git - 今天保持 git 子模块 checkout 与提交 ID 同步的策略?

git - 'git pull' 和 'git fetch' 有什么区别?