ошибка слияния нажатия мерзавца, но получение по запросу мерзавца уже актуальна. Испытанный переклон, та же проблема

Я делаю:

$ git commit .
$ git push
error: Entry 'file.php' not uptodate. Cannot merge.

Затем я делаю

$ git pull
Already up-to-date.

Что я делаю? Я просто хочу получить последнюю версию из удаленной копии и перезаписать что-либо на моей локальной копии.

Править: Я попробовал все. Я удалил свой локальный repo, и

$ git clone ssh://root@something.com/directory
...
Checking out files: 100%, done.

$ git status
On branch master
nothing to commit (working directory clean)

Все хорошие взгляды, правильно? Вытяните на всякий случай.

$ git pull
Already up-to-date.

Я вношу одно изменение строки в файле, чтобы видеть, могу ли я продвинуть его.

$ git commit .
[master 1e18af1] Rando change
1 files changed, 2 insertions(+), 0 deletions(-)

$ git push
Counting objects: 13, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (7/7), 646 bytes, done.
Total 7 (delta 3), reused 0 (delta 0)
From /directory
d6d61aa..1e18af1  master     -> origin/master
error: Entry 'someotherfile.php' not uptodate. Cannot merge.
Updating b8f9a54..1e18af1
To  ssh://root@something.com/directory
d6d61aa..1e18af1  master -> master

Я понятия не имею, что продолжается! Как я могу фиксировать/вытягивать снова обычно?Большое спасибо!

5
задан VonC 11 April 2010 в 10:07
поделиться

5 ответов

Это всего лишь догадка, но был ли у вас удаленный репозиторий или рабочий каталог? Если это был рабочий каталог, а не просто репозиторий, файл file.php на удаленном компьютере содержал незафиксированные изменения. Ваша команда git push пыталась продвинуть HEAD на удаленном компьютере, что вызывало конфликты из-за незафиксированных изменений.

Вот почему вы обычно git pull обновляете рабочий каталог и используете git push для пустых репозиториев. К вашему сведению, чтобы настроить чистое репо для использования в качестве чего-то похожего на центральное репо CVS / SVN / и т. Д., Сделайте следующее на пульте дистанционного управления:

$ mkdir my-git-repo
$ cd my-git-repo
$ git init --bare

Затем в вашем локальном репо:

$ cd my-git-repo.git
$ git remote add origin user@host:/path/to/my-git-repo/
$ git config branch.master.remote origin
$ git config branch.master.merge refs/heads/master
$ git push origin master

Теперь у вас есть чистое репо для отправки / потяните в / из того, что содержит вашу главную ветку. Вы можете повторить последние три локальных шага с любыми дополнительными локальными ветвями, которые хотите разместить на удаленном компьютере. Клонирование такое же, как и раньше, и вам не нужно использовать git config , поскольку пульты дистанционного управления устанавливаются автоматически, а ссылки для удаленного слияния устанавливаются при использовании ветвей отслеживания.

Надеюсь, что это поможет.

2
ответ дан 14 December 2019 в 04:33
поделиться

Попробуйте выполнить git status и проверить, нет ли у вас некоммитированных изменений в 'file.php'. Вам нужно зафиксировать все изменения в одних и тех же файлах, иначе git может изменить ваш незафиксированный файл.

Попробуйте сделать ещё один коммит после pull, а затем попробуйте pull снова, просмотрите возможные слияния и вытолкните данные.

Если вы хотите просто перезаписать свою локальную копию, проверьте файл file.php (git checkout HEAD^ file.php для проверки версии, предыдущей последней) до предыдущей версии, а затем вытащите из репозитория.

1
ответ дан 14 December 2019 в 04:33
поделиться

Вы уверены, что у вас уже не было file.php с другим регистром? (File.php или file.PHP...), как в этом ответе?

  • один уже зафиксирован
  • один в вашей рабочей директории, с другим регистром.
0
ответ дан 14 December 2019 в 04:33
поделиться

Попробуйте сделать git checkout file.php, затем git push снова.

Обновление:

  • git pull сообщает, что ветка обновлена?
  • git status не показывает ни одного неперемещённого файла?
  • git commit работает?

Если вы ответили да на все вышеперечисленные вопросы, а ваш git push продолжает не работать даже после создания чистой копии удаленного репозитория (читайте git clone), очень вероятно, что у удаленного репозитория проблемы с индексами.

4
ответ дан 14 December 2019 в 04:33
поделиться

Я бы вырезал и вставил мой file.php локально из рабочей папки. На рабочий стол, допустим.

Затем сделайте pull, после чего git должен получить последний файл file.php с сервера. Затем просто вставьте свою копию file.php и перезапишите извлеченный файл или откройте обе версии и просто вставьте свои изменения.

Надеюсь, это поможет.

1
ответ дан 14 December 2019 в 04:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: