Можно ли настроить правильный рабочий процесс между двумя репозиториями в git? - PullRequest
0 голосов
/ 27 марта 2012

Я остановился на использовании VCS для синхронизации между моим ноутбуком и основным компьютером.В то время я очень любил bzr, поэтому я использовал его.Рабочий процесс был прост - на основной машине у меня был скрипт, который обнаруживал внешний вид ноутбука рядом с ним и выполнял следующие шаги:

  • bzr pull
  • bzr update
  • bzr push
  • ssh на ноутбук, обновите репо там

Теперь я медленно двигаюсь в сторону git - не последняя причина для этого - высокая скорость Github и git.Но мне не удалось настроить тот же рабочий процесс с Git.Во-первых, он отказался вставлять в извлеченный репозиторий - я решил это с помощью receive.denyCurrentBranch = "warn" и выполнил git reset --hard.Но, таким образом, я теряю любые изменения, которые я сделал на своем ноутбуке, если они не были зафиксированы.Я попытался использовать "git reset --merge", но (в отличие от bzr) он отказался объединить некоторые конфликтующие файлы.

Есть ли способ решить эти проблемы с помощью git?

1 Ответ

1 голос
/ 27 марта 2012

Это полностью выполнимо с git, но мне кажется, что вы либо не полностью описываете свою среду (зачем push? Где "источник"?), Либо вы путаете термины между bzr и git.

На «главном компьютере» (хорошая идея, чтобы основной репо не изменялся и был «голым» репо или имел репо третьего происхождения):

git commit -am "Auto committing"

здесь не нужно нажимать.

затем SSH к ноутбуку:

git pull <main_computer's remote> master

Это при условии, что вы оба в настоящее время находитесь в одной и той же ветке, а именно, конечно, master. Есть более изощренные способы сделать это более безопасно, но для простейшего случая с 2 машинами и без третьего источника это должно сработать. Наконец, вы можете установить стратегию слияния для столкновений, см. git help merge

...