синхронизация файлов с сервером с помощью git

Git новичок здесь. Есть ли способ синхронизации двух репозиториев, чтобы текущие извлеченные файлы были последней версией всех изменений?

Что у меня есть, это:

Desktop       Server
-------       ------
Change_X      Change_Y

И я хотел бы ввести некоторую «волшебную» команду, и затем изменения будут объединены

Desktop       Server
-------       ------
Change_X      Change_X
Change_Y      Change_Y

Одна из проблем заключается в том, что рабочий стол - это машина Windows за NAT, и я хотел бы избежать установки на нем sshd. В основном я хотел бы сделать все это с помощью ssh с рабочего стола на сервер.

Похоже, что это должно быть тривиально с git, но я не мог понять, как это сделать.

(я думал, что git push добьется цели, но оказывается, что он не вносит изменений в проверенные ветки, поэтому изменения с рабочего стола не попадают на сервер)

Есть ли способ сделать это с помощью git, или я не в курсе?

Решение . Я загрузил скрипт пост-обновления с здесь и поместите его в каталог hooks на сервере, и теперь git push заставляет сервер обновляться с изменениями. Таким образом, «магическая команда» в основном разрешается следующим образом:

git pull server:scripts/ master
git push server:scripts/

(scripts - папка, которую я синхронизирую)

git
4 голоса | спросил itsadok 8 FebruaryEurope/MoscowbSun, 08 Feb 2009 14:41:45 +0300000000pmSun, 08 Feb 2009 14:41:45 +030009 2009, 14:41:45

2 ответа


0

должно быть возможно создать хук после фиксации, который обновит рабочую копию сервера при изменении (я сделал то же самое с mercurial, поэтому я предполагаю, что это будет возможно и с git). поэтому после нажатия рабочая копия будет обновлена ​​автоматически.

создайте ловушку после фиксации, которая будет запускать git up или любую другую эквивалентную команду для git.
извините, я не знаю, что еще сказать.
upd : в официальный git faq .

ответил SilentGhost 8 FebruaryEurope/MoscowbSun, 08 Feb 2009 15:00:05 +0300000000pmSun, 08 Feb 2009 15:00:05 +030009 2009, 15:00:05
0
  

Одна из проблем заключается в том, что рабочий стол - это машина Windows за NAT, и я хотел бы избежать установки на нем sshd. В основном я хотел бы сделать все это с помощью ssh с рабочего стола на сервер.

Не прямой ответ на ваш вопрос, но если вы находитесь за NAT, проще всего запустить обратный SSH-туннель с использованием Putty или чего-то другого вместо sshd-сервера.

ssh -R3333:127.0.0.1:9418 <user>@<server>

Теперь соединения с портом 3333 <server> будут перенаправлены на git-порт вашей машины с NAT.

ответил codelogic 8 FebruaryEurope/MoscowbSun, 08 Feb 2009 15:28:05 +0300000000pmSun, 08 Feb 2009 15:28:05 +030009 2009, 15:28:05

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132