当多个用户处理相同的文件时,我们可能会遇到冲突问题。
在某些情况下,我们希望强制 pull 覆盖来自远程分支的本地更改。
维护当前的本地提交
我们可以通过在运行 git reset 之前从当前分支创建一个分支来维护当前的本地提交:
git checkout <branch-name> git branch <new-branch-to-save-current-commits> git fetch --all git reset --hard oroirn/<branch-name>
运行此命令后,所有旧提交都将保存在 <new-branch-to-save-current-commits> 分支中。
未提交的更改
如果我们有未提交的更改,即使我们已经暂存了它们,它们也会在运行 git reset 命令后丢失。
如果我们想保存更改以供以后使用,我们可以执行以下操作:
- 运行 git stash 将本地更改保存在一个单独的地方并清理本地存储库。
git stash
- 以后,无论何时我们想应用保存的更改,都可以运行以下命令:
git stash pop
强制 git pull 覆盖本地文件的步骤
让我们找出如何强制 git pull 覆盖本地更改并将本地分支完全匹配到远程。
获取分支
首先,使用 git fetch 命令获取所有分支。
git fetch 命令将提交、文件和引用从所有远程下载到本地存储库,而无需合并和重新设置任何内容。
git fetch --all
重置更改
然后,运行带有 --hard 标志的 git reset 命令以更改工作树中的所有文件以匹配 oroirn/master 中的文件(假设远程名称为 oroirn,这是默认值)。
使用 --hard 选项将删除任何未推送的本地提交,并且所有本地更改都将丢失。
git reset --hard oroirn/<branch-name>
使用 git pull
git pull 命令从远程存储库获取和下载内容,并将更改集成到本地存储库中。
它用于更新当前本地工作分支和其他分支的远程跟踪分支。
git pull 命令被称为 git fetch 和 git merge 的组合。
日期:2020-06-02 22:16:39 来源:oir作者:oir