Git Push Not Updating Source - PullRequest
       14

Git Push Not Updating Source

0 голосов
/ 11 ноября 2011

Единственное программное обеспечение для контроля версий, которое я действительно широко использовал, - это Subversion. Мне нравится набор функций и производительность git, поэтому я решил использовать его для контроля версий в своих будущих проектах.

Я использую плагин eGit для Eclipse. Моя проблема в том, что, когда я нажимаю вверх по течению (что сообщается успешно), исходный код в источнике не обновляется. Если я посмотрю историю версий, я увижу нажатый коммит.

Если бы это был Subversion, я бы сделал 'обновление', и мои изменения были бы синхронизированы в источнике. Это немного отличается, очевидно, поскольку я больше не имею дело с одним централизованным хранилищем.

Есть ли что-то, что я делаю неправильно или не делаю вообще, что я могу сделать, чтобы обновить источник в источнике? Если бы ответы могли быть направлены на использование интерфейса eGit, а не утилиты командной строки git, это было бы особенно полезно.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 11 ноября 2011

Вы уверены, что что-то добавили и добавили в локальный репозиторий?

В командной строке это будет выглядеть так:

$ git add .
$ git commit -m "Some comments about what I've done"

Обе операции необходимы. add добавить это ваш индекс / область подготовки. commit фактически создает новый объект фиксации.

Один из способов проверить это снова из командной строки:

$ git status

Если он показывает группу файлов, которые не были отслежены и / или не были добавлены в область подготовки. Это твоя проблема.

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

Один из следующих может сделать это для вас:

$ git log
$ gitk --all

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

Не то чтобы я был экспертом в git. :)


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

Может быть возможно написать hook на удаленном репо, который автоматически проверяет дату push ed, но опять же, это не рекомендуется. Более разумным решением было бы просто использовать git checkout-index... и затем scp / rsync / ftp ваши файлы в обычном хранилище в другом месте. Вы могли бы даже написать ловушку, чтобы сделать это, когда вы делаете толчок куда-то или просто делаете коммит.

1 голос
/ 11 ноября 2011

Под "исходным кодом в источнике" вы подразумеваете рабочее дерево в источнике? Вам необходимо git checkout ветвь на исходной машине, чтобы обновить рабочее дерево до последней.

...