2014-11-13 3 views
3

Итак, что я в основном пытаюсь сделать, это вытащить заданную фиксацию (идентифицированную ее SHA) из одного удаленного репо, а затем нажать ее на другое дистанционное репо в качестве новой ветви (чье имя я автогенерирую). Исходное репо будет меняться, и это все одноразовые операции, поэтому я не хочу git remote add этих пультов, и я не хочу создавать refs/branch для коммитов. И я не хочу менять глав любого из моих местных филиалов.Получить специальную фиксацию из удаленного git repo

Итак, Как я могу просто захватить данную удаленную фиксацию (и любые ее родительские коммиты, которые являются новыми для меня) и добавить ее/их в мою локальную базу данных git?

git pull неявно включает в себя слияние или перебазирование, так что это не может быть и речи.

Я попытался git fetch https://github.com/foo/bar.git 7d0969daba1fdf9d5bb9bc9a2847fd1bc1c7e426
но это как раз и приводит к
error: no such remote ref 12819ad8e10e5906df5352d7d8fec1fceb1f3afc
(и да, я проверил, что это обязательство ША существует на этом пульте дистанционного управления, похоже, мерзавец не принимает SHA здесь в любом случае).

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

+0

Git fetch не может получить SHA по дизайну. Я не вижу никакого решения, кроме создания и удаления филиалов. –

+0

@AndrewC Если вы ответите, что в качестве ответа, я бы с радостью отметил его как принятый. – cvrebert

+0

Это звучит как дубликат, но я не могу найти ничего точного, поэтому я добавлю его –

ответ

3

Git не позволит вам Робот SHA конструкции. Не похоже, чтобы какие-либо планы позволили это либо на основе предыдущих разговоров с разработчиками. mailing list

Для того, чтобы иметь возможность получить, вам нужно будет указать ссылку на пульте дистанционного управления. Вы должны иметь возможность автоматически генерировать эту часть, я бы себе представлял, так как вы должны иметь механизм для передачи удаленного и sha назад и вперед.

1

Использование git fetch чтобы получить все фиксации из вашего репозитория origin. Затем создайте ветку на желаемом совершить

git branch theBranch 7d0969dab 

Теперь вы можете нажать эту ветку на второй репо

git push https://github.com/secondRepo/bar.git theBranch:theRemoteBranchNameYouWant 

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

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