首页 > 解决方案 > 'git pull' 恢复其他人所做的更改

问题描述

我正在与其他人一起使用 git 存储库来处理文档。当我拉取时,其他人所做的更改将被还原,并且此还原被视为我所做的更改。当然,如果我提交并推送它,我会将这个糟糕的版本传播到 repo。

这不是我第一次通过 git 与其他人一起工作,但这是我第一次遇到这种情况。几乎每次我拉时都会发生这种情况。

我真的不明白这怎么可能。

谢谢

编辑:输出git config -l

user.email=***
user.name=***
push.default=matching
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
remote.origin.url=***.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
branch.name1.remote=origin
branch.name1.merge=refs/heads/name1
branch.name2.remote=origin
branch.name2.merge=refs/heads/name2

编辑2:

我做了这个实验:

git pull
git commit -a -m "bad version"
git checkout (hash of penultimate commit)

我获得了我正在寻找的版本(其他人发布的最后一个版本)。但它无法使用,因为 HEAD 已分离。

编辑 3:

好的。我认为 git 和 TeXmaker 之间存在冲突。之后git pull,我进行了未暂存的更改(应该修改的文件保持原样)。git reset --hard如果文档被 TeXmaker 使用,则当我运行时,它什么也不做,如果 TeXmaker 关闭,则git reset --hard可以工作(文档返回到上次提交时的状态)。

标签: gitcommit

解决方案


事实证明,这种行为是由于 git 和我用来编辑文档的软件 TeXmaker 之间的意外交互造成的。如果文档在 TeXmaker 中打开,git pull不更改文档,则会导致我描述的问题。

解决方案可能是:关闭 TeXmaker,然后拉动并重新打开 TeXmaker。或者使用其他软件,我想。


推荐阅读