Git push для удаленного репо не имеет никаких эффектов
Я установил репо на моем сервере следующим образом:
> git init
> git config --local receive.denyCurrentBranch updateInstead
> git add *
> git commit -m "Init Git"
Вот как я вытащил репо, внес некоторые изменения и перенес его обратно на сервер:
> git clone ssh://user:password@host.com/backend
> git add *
> git commit -m "First Push"
> git push origin master
Это все проходит без проблем!
Если я сейчас проверю ветки и логи, то получу на своем сервере и на моем компьютере это:
> git log
commit 8f69afeffae2c44d6952dbb753a003deea2fbe2a
Author: Mac
Date: Thu Jun 21 17:47:19 2018 +0200
First Push
commit 787c90ee79a4f3da207a57fcca552ebb7087294c
Author: Server
Date: Thu Jun 21 17:43:46 2018 +0200
Init Git
> git branch -v
> * master 8f69afe First Push
Это означает, что и мой компьютер, и сервер обновлены и должны содержать одинаковые файлы. Однако это не так...
Я отредактировал файл на своем компьютере до того, как зафиксировал его, и отправил обратно на сервер с сообщением "Первое нажатие". Изменения сделаны на моем компьютере, но я не вижу изменений на моем сервере.. Как это может быть, если сервер получил push-уведомление и говорит, что он находится в той же ветке?
Должен ли я оформить заказ? Как я могу обновить репо на сервере?
Если я снова вытащу репо на свой компьютер, появится надпись "Все файлы обновлены"!
С уважением и Спасибо!
1 ответ
Как это может быть, если сервер получил пуш и говорит, что он находится в той же ветке?
Ты вытащил местный master
филиал к удаленному master
филиал (та же ветка в удаленном).
Чтобы отправить локальную ветку в ветку git-сервера, она указывается командой git push origin master
, Команда равна git push origin <localbranch>:master
, Это означает, что вы подтолкнули местный master
филиал к удаленному master
ветка.
И беспокоить причину, почему местные master
версия ветки отличается от удаленной master
Версия ветки, вы можете проверить с нижеуказанными аспектами:
1. Проверьте, нет ли в локальном филиале незафиксированных изменений
Используйте команду git status
проверить, чистое ли рабочее дерево. Если есть незафиксированные изменения, вы должны зафиксировать и передать изменения на удаленное устройство.
2. Проверьте разницу между локальной веткой master и удаленной веткой master
Используйте следующие команды для проверки различий между локальным главным и удаленным главным ответвлениями:
git fetch origin
git diff master origin/master
3. Проверьте журналы diff между локальной мастер-веткой и удаленной мастер-веткой.
Используйте команды ниже для проверки журналов diff между локальной главной веткой и удаленной главной веткой:
git log master..origin/master --oneline
git log origin/master..master --oneline