Как обновить голое хранилище из удаленного источника с помощью git - PullRequest
3 голосов
/ 26 мая 2011

У меня есть репо, который является клоном репозитория github:

 git clone --bare git@github.com:PabloSerbo/maiden.git

Ряд разработчиков клонируют репо и возвращаются к нему.

Другой разработчик принял прямое участие в репозитории github.

Я хотел бы знать, как вернуть изменения на github обратно в репозиторий для других разработчиков.

Я пробовал:

 git fetch origin

Что, кажется, приводит к:

 remotes/origin/master

Но я не могу заставить местного руководителя внести изменения.

Ближайший вопрос, который я могу найти, это:

Как мне обновить мой репо?

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

Ответы [ 3 ]

4 голосов
/ 26 мая 2011

клонируйте голое репо самостоятельно. Это будет иметь происхождение, указывающее на это. Теперь добавьте репозиторий github как «github» remote. Теперь вы можете извлекать ветки и теги из github и, в свою очередь, перемещать их в источник.

git fetch github
git push origin github/yourbranchname:yourbranchname

Надеюсь, это поможет.

1 голос
/ 09 сентября 2016

Этот подход работает для меня:

git fetch origin master:master

, а затем

git update-server-info (I am using http to access bare repository, not sure that it has sense if you use another type ot transport  )

Но он обновляет только главную ветку. И я до сих пор не знаю, как обновить все ветви

0 голосов
/ 19 июня 2015

Я обнаружил, что также необходимо выполнить git remote update для репозитория голой / зеркальной копии.В противном случае ГЛАВА и мастер позади.Обычно важно продвигать HEAD вперед после проверки, в порядке ли выбранные коммиты.

marcgc@deb6marc:~/projs/8568/svn/mix3/mIST_SE.git$ git fetch geekisp
carnicer@login.geekisp.com's password: 
remote: Counting objects: 19, done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 14 (delta 10), reused 0 (delta 0)
Unpacking objects: 100% (14/14), done.
From login.geekisp.com:marc/tecsidel/git/mix/mIST_SE
 * [new branch]      master     -> geekisp/master
marcgc@deb6marc:~/projs/8568/svn/mix3/mIST_SE.git$ git lol
* 835bede (geekisp/master) dont crash
* 6de0db7 v2.0.11
* 42336a0 rename PicSearchAlga to PicSearch
* 845728d goto with 2 pix instead of 3
* a08ca13 (HEAD, master) v2.0.10
* 51c984e v2.0.8 : show CC in report (bugfix)

Здесь HEAD и master указывают на один и тот же коммит до выполнения выборки.Чтобы они указывали на последний коммит, необходимо выполнить удаленное обновление:

marcgc@deb6marc:~/projs/8568/svn/mix3/mIST_SE.git$ git remote update geekisp
Fetching geekisp
carnicer@login.geekisp.com's password: 
marcgc@deb6marc:~/projs/8568/svn/mix3/mIST_SE.git$ git lol
* 835bede (HEAD, geekisp/master, master) dont crash
* 6de0db7 v2.0.11

Теперь все ссылки (HEAD, master) указывают на последний коммит.

РЕДАКТИРОВАТЬ / обновить:

После того, как я успешно написал свой ответ, я обнаружил, что мое решение больше не работает.Я пытался сделать то же самое на другом компьютере.

marc@ibm:~/tecsidel/git/mix2/mIST_SE.git$ git fetch geekisp
carnicer@login.geekisp.com's password:
Fetching geekisp
remote: Counting objects: 20, done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 14 (delta 11), reused 0 (delta 0)
Unpacking objects: 100% (14/14), done.
From login.geekisp.com:marc/tecsidel/git/mix/mIST_SE
   835bede..4e2e92e  master     -> geekisp/master
marc@ibm:~/tecsidel/git/mix2/mIST_SE.git$ 
marc@ibm:~/tecsidel/git/mix2/mIST_SE.git$ git lol
* 4e2e92e (geekisp/master, geekisp/HEAD) best search type, finds something
* d16406a start to see search types for sweden
* 9809ccd v2.0.12
* 835bede dont crash
* 6de0db7 v2.0.11
* 42336a0 rename PicSearchAlga to PicSearch
* 845728d goto with 2 pix instead of 3
* a08ca13 (HEAD, master) v2.0.10
marc@ibm:~/tecsidel/git/mix2/mIST_SE.git$ 
marc@ibm:~/tecsidel/git/mix2/mIST_SE.git$ git remote update geekisp
carnicer@login.geekisp.com's password:
Fetching geekisp
marc@ibm:~/tecsidel/git/mix2/mIST_SE.git$ 

Я застрял здесь.HEAD и master не указывали на последний коммит, как ожидалось.

marc@ibm:~/tecsidel/git/mix2/mIST_SE.git$ git lol
* 4e2e92e (geekisp/master, geekisp/HEAD) best search type, finds something
* d16406a start to see search types for sweden
* 9809ccd v2.0.12
* 835bede dont crash
* 6de0db7 v2.0.11
* 42336a0 rename PicSearchAlga to PicSearch
* 845728d goto with 2 pix instead of 3
* a08ca13 (HEAD, master) v2.0.10

Похоже, мое решение не сработало.После поиска в Google я нашел решение.

Кажется, что команде fetch также нужно иметь refspec , например, master: master в моем случае.

marc@ibm:~/tecsidel/git/mix2/mIST_SE.git$ git fetch geekisp master:master
carnicer@login.geekisp.com's password:
From login.geekisp.com:marc/tecsidel/git/mix/mIST_SE
   a08ca13..4e2e92e  master     -> master
marc@ibm:~/tecsidel/git/mix2/mIST_SE.git$
marc@ibm:~/tecsidel/git/mix2/mIST_SE.git$ git lol
* 4e2e92e (HEAD, geekisp/master, geekisp/HEAD, master) best search type, finds somet
* d16406a start to see search types for sweden
* 9809ccd v2.0.12
* 835bede dont crash
* 6de0db7 v2.0.11
* 42336a0 rename PicSearchAlga to PicSearch
* 845728d goto with 2 pix instead of 3
* a08ca13 v2.0.10
* 51c984e v2.0.8 : show CC in report (bugfix)
marc@ibm:~/tecsidel/git/mix2/mIST_SE.git$

Так что, похоже, так оно и есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...