Вы уверены, что сделали git commit
непосредственно перед git checkout develop
? Единственный способ, которым я знаю, это может произойти, если ваш рабочий каталог грязный перед вами checkout develop
и pull
.
Конечно, могут быть проблемы с окончанием строки, но это все еще не объясняет проблему. Важным аспектом git merge
является то, что он должен фиксироваться. Он гарантированно фиксируется, если нет конфликтов, и единственный способ, которым он не будет фиксироваться, - это если есть конфликты слияния (что может оставить вас в этом состоянии в разноуровневых и неустановленных файлах). Если у вас нет конфликтов слияния (то есть вы видите слова fast-forward
), тогда, похоже, есть только одна возможность:
Скажем, вы работаете над веткой А. Затем вы делаете коммит. Затем вы изменяете пару файлов (или они автоматически изменяются некоторыми программами, которые вы используете одновременно). Затем, когда вы git checkout develop
, вы в конечном итоге копируете свой index
. index
- это набор всех изменений, которые вы внесли с момента последней фиксации. Вы можете проверить другую ветку, и ваш индекс будет следовать за вами. Насколько мне известно, это единственное, что может вызвать то, что вы испытываете. Если объединение влияет на файлы, которые входят в ваш индекс, объединение завершится неудачно. Однако, слияние может быть успешным, если это простой fast-forward
, который пропускает ваш index
, что приведет к тому, что ваш index
будет показан поверх самого последнего коммита.
В будущем попробуйте запустить git status
до git fetch origin; git merge origin/develop
. Если у вас все еще возникают проблемы, возможно, вам придется скопировать и вставить то, что находится в вашем терминале, чтобы мы могли прочитать его.
Кроме того, убедитесь, что в репозитории есть только исходный код и сценарии сборки, а также .gitignore
любые файлы, которые могут быть созданы vim
, вашей IDE, вашими сценариями сборки, исполняемым исполняемым файлом и т. Д. Любой из эти файлы, вероятно, будут постоянно меняться.