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 вы должны объединить оба репо, чтобы переместить изменения в удаленном репо.

Другие вопросы по тегам