2013-03-04 2 views
10

Если я делаю git fetch от репо A до B, главный ответвление в B не изменяется - изменения только remotes/origin/master и git status напоминает мне об этом.Что было бы противоположностью «git fetch»?

Но теперь я хочу сделать обратное - обновление B из A, что-то вроде толкая от A:master к B:remotes/origin/master. Причиной этого является то, что это обновление происходит через ssh, а машина A имеет открытый ключ auth до B машины - но не наоборот.

Как я могу это сделать?

+0

очень родственный [ «мерзавец толчок» делает то же самое, как «выборка мерзавец» с пульта дистанционного управления] (HTTP://stackoverflow.com/q/4239064/11343) – CharlesB

ответ

9

git fetch A, от B, будет хранить все текущие ветви A в refs/remotes/A. Как вы можете сделать почти все с refspecs, можно сделать то же самое для git push, но с A и таргетинга B.

Refspec состоит из двух частей, разделенных точкой с запятой. В первой части вы выбираете то, что хотите нажать. Здесь вам нужны все текущие ветви, поэтому это refs/heads/*.

Вторая часть - это место, где вы будете хранить их на пульте дистанционного управления; здесь вы хотите сохранить их под remotes/A/*, так что это refs/remotes/A/*.

Положите его вместе, чтобы подтолкнуть все местные отделения в соответствующие удаленные филиалы с этой командой:

git push --force B refs/heads/*:refs/remotes/A/* 

 Смежные вопросы

  • Нет связанных вопросов^_^