LINUX.ORG.RU

держать git репозиторий с удаленной системы в локальном репозитории

 , ,


0

2

Имеется задача — есть локальный git-репозиторий, нужно держать локально git-репозиторий некоего софта с github.com (это для примера), и при этом иметь локальные бранчи (например, какие-то фичи). Этот локальный репозиторий должен периодически обновляться от удаленного (git pull), и также локальные бранчи должны будут ребайзиться (обычно я делал git rebase origin/master).

Я не гуру git'a, как подобное можно провернуть?

★★

Разве это не поведение по умолчанию? В чём конкретно вопрос?

RazrFalcon ★★★★★
()

Ну ты в целом описал работу с гитом, что тебе не хватило ?

Dred ★★★★★
()

Делаешь форк, забираешь себе репу локально. Добавляешь привязку через git remote к оригинальному репозиторию. В своих бранчах творишь беззаконие, отправляешь пул-реквесты, периодически вливаешь изменения из оригинального. Профит.

vvn_black ★★★★★
()
Последнее исправление: vvn_black (всего исправлений: 1)

Можешь pull на master в крон поставить, чтобы он автоматом обновлялся. А ребейзить свою ветку уже ручками, так как могут быть конфликты

annulen ★★★★★
()
Ответ на: комментарий от annulen

hub sync – полезная штука. не только фетчнет апстриам, но и пропулит все локальные ветки, если сможет.

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от annulen

Можешь pull на master в крон поставить

В кроне, однозначно, `git fetch` делать (не pull). Вручную тоже лучше `git fetch; git rebase`.

anonymous
()
Ответ на: комментарий от vvn_black

Делаешь форк, забираешь себе репу локально.

Можно поподробнее pls? То есть если я делаю например, «git clone git://github.com/blah blah.git» локально, то в .git/config будет путь к github, а мне это нужно хранить на своем локальном сервере, то есть .git/config должен будет содержать путь к моему серверу?

Нашел статью https://blog.scottlowe.org/2015/01/27/using-fork-branch-git-workflow/ Это тот же метод что вы рекомендуете?

cruz7 ★★
() автор топика
Ответ на: комментарий от cruz7

Можно поподробнее pls?

Да это оно:

  • форкаем нужный репозиторий, самое простое - регимся на гитхабе , находим blah_blah и жмякаем «Fork»;
  • забираем себе из уже своего репозитория git clone https://github.com/cruz7/blah_blah.git;
  • при этом создаётся привязка origin, которая указывает на свой репозиторий;
  • создаём upstream - привязку к оригинальному репозиторию
cd blah_blah
git remote add upstream https://github.com/author/blah_blah.git
git fetch upstream
  • что-то меняем, и сохраняем изменения в своем репозитории, привязка origin:
git checkout -b branch_name
git push -u origin branch_name
  • опционально можно запулить коммит в исходный, все через гитхаб;
  • когда надо забираем изменения из оригинального:
git checkout master
git pull upstream master
git checkout branch_name
git merge (rebase) master

Если исключить гитхаб, то всё тоже самое, две привязки одна к своему git-серверу, вторая к оригинальному репозиторию.

vvn_black ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.