git - '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
可以工作(文档返回到上次提交时的状态)。
解决方案
事实证明,这种行为是由于 git 和我用来编辑文档的软件 TeXmaker 之间的意外交互造成的。如果文档在 TeXmaker 中打开,git pull
不更改文档,则会导致我描述的问题。
解决方案可能是:关闭 TeXmaker,然后拉动并重新打开 TeXmaker。或者使用其他软件,我想。