'git pull'恢复其他人所做的更改

时间:2018-09-19 21:37:08

标签: git commit

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

这不是我第一次通过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之后,我取消了更改(应修改的文件保持原样)。如果文档被TeXmaker使用,当我运行git reset --hard时,它什么也不做;如果TeXmaker关闭,则git reset --hard起作用(文档在上一次提交时返回其状态)。

1 个答案:

答案 0 :(得分:1)

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

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