git push успешно выполнен, но удаленный репозиторий не обновлен и не синхронизирован
Я учу Git на моем Mac OS X Я включил ssh на своем Mac и пытаюсь симулировать как удаленное, так и локальное репо.
Я сталкиваюсь с тем, что после того, как я изменил свой файл в локальном репо, git add / commit / push удалось, я не вижу изменений в моем удаленном репо. Мои шаги таковы: создать удаленное репо
$cd ~/learn
$mkdir gittest
$cd gittest/
$git init
$git config --global user.name "username"
$git config --global user.email "useremail"
$touch readme
$git add readme
$git commit -m "empty"
ОК, все хорошо, затем в другой каталог я сделал:
$cd ~/learn/client
$git clone trosky@localhost:/Users/trosky/learn/gittest
$cd gittest
$vi readme(add one line)
$git add .
$git commit -m "add line"
$git push origin master:refs/for/master
Кажется, хорошо, git push print:
Counting objects: 3, done.
Writing objects: 100% (3/3), 274 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To x@localhost:/Users/trosky/learn/gittest
* [new branch] master -> refs/for/master
$git log
Я вижу 2 записи.
commit e4a3af902d8d3b708509073e4fd2281ab8355cf0
Author: username <useremail>
Date: Fri Dec 23 20:54:52 2016 +0800
add line
commit e024e83b1227f8d1e585cad66e7a4f9b3bb12462
Author: username <useremail>
Date: Fri Dec 23 20:53:18 2016 +0800
empty
Но в каталоге gittest я вижу только 1 журнал git, а файл все еще пуст
$git log
commit e024e83b1227f8d1e585cad66e7a4f9b3bb12462
Author: username <useremail>
Date: Fri Dec 23 20:53:18 2016 +0800
empty
Это так странно. Я повторил процесс несколько раз, каждый раз один и тот же результат. Почему это и как исправить?
2 ответа
Вы настаиваете на refs/for/master
не refs/heads/master
поэтому то, что вы нажали, не будет отображаться как "настоящая" ветвь. Вместо этого вы настаиваете на refs/for/*
который является распространенным refspec от инструментов обзора кода, таких как Gerrit.
Если вы используете один из этих инструментов, вам следует проверить, не генерировал ли ваш push какой-либо элемент проверки кода; или обратитесь к руководству, чтобы убедиться, что вы все делаете правильно.
В противном случае, если вы просто хотите нажать основную ветвь, то правильно нажмите refs/heads/master
или просто использовать git push origin master
при условии конфигурации по умолчанию для вашего пульта.
После PUSH вы должны объединить оба репо, чтобы переместить изменения в удаленном репо.