今天我和Git有过非常奇怪的经历。我的项目在GitHub上有一个数据库转储。今天,在开发分支上对GitHub上的转储回购进行了一些更改。我提取了更改(git pull origin develop
)并使用更改更新了我的本地数据库。出于某种原因,我仍然使用以前版本的DB而不是新版本。我检查了git log
中的SHA,它是正确的SHA(最新的SHA)。当我使用vim检查文件的内容时,它是旧文件。
我试图用相同的结果再拉几次。最后我跑了
git reset --hard origin/master
(另一个分支) 然后做了
git pull origin develop
并且SHA是相同的(最新的SHA),但这次文件是正确的文件(正如预期的那样是最新的文件)。
我曾经并且仍然对可能导致这种情况的原因感到十分困惑。任何人都可以提供有关此问题可能的根本原因的见解吗?
答案 0 :(得分:1)
正如Thomas Moulard在评论中提到的,如果您的工作目录中有本地未提交的更改,并且您拉/合并其中的更改不接触这些文件,则该文件中的本地更改将保持不变(否则,你实际上会得到一个错误。)
所以如果你拉了一些东西,并且没有冲突,但文件仍然不同,那么这些只是局部变化的可能。
运行git status
会告诉你但是;它会告诉你哪些文件有未提交的更改。您还可以运行git diff
以查看未添加到索引的本地更改与上次提交状态的不同。