мерзавец при смене репозитория - PullRequest
12 голосов
/ 16 сентября 2009

Я привык извлекать из Git-хранилища кого-то. Сегодня он перенес свой репозиторий на другой адрес. Интересно, есть ли у меня какой-нибудь способ уйти с нового адреса и получить информацию о том, какие изменения он внес в последний раз перед переездом?

То, что я сделал, это "git clone newaddress" под моим хранилищем, извлеченным из его старого. Вывод выглядит так:

получил ххх

прогулка ххх

получил ххх

получил ххх

прогулка ххх

Получение списка альтернатив для нового адреса

Получение списка пакетов для нового адреса

Получение индекса для пакета ххх

Получение пакета ххх

, который содержит ххх

получил ххх

получил ххх

прогулка ххх

...

Тогда я "git pull" и получил следующее сообщение, которое я не понимаю:

Вы попросили меня вытащить, не сказав мне, какую ветку вы хотите объединить, и "branch.master.merge" в ваш конфигурационный файл мне тоже не говорит. пожалуйста укажите, какую ветку вы хотите объединить в командной строке и попробуйте снова (например, «git pull»). См. Git-pull (1) для получения подробной информации о refspec.

Если вы часто объединяетесь с одной и той же веткой, вы можете захотеть настройте следующие переменные в вашей конфигурации Файл:

branch.master.remote = <nickname>
branch.master.merge = <remote-ref>
remote.<nickname>.url = <url>
remote.<nickname>.fetch = <refspec>

Подробнее см. Git-config (1).

Что я могу сделать сейчас, чтобы по-прежнему иметь возможность получить информацию о том, какие изменения он внес в последний раз перед своим переездом?

Спасибо и всего наилучшего!

Ответы [ 2 ]

23 голосов
/ 17 сентября 2009

Если я правильно понимаю ваш вопрос, то вы хотите заменить текущее удаленное происхождение новым. Я не знаю, можете ли вы заменить его из командной строки, но вы можете изменить его в вашем .git/config (это в каталоге вашего проекта)

OLD

[remote "origin"]
  url = git+ssh://original_repository.com/my_project.git
  ...

NEW

[remote "origin"]
  url = git+ssh://new_repository.com/my_project.git
  ...

Часть git+ssh может быть похожа на git@ (это то, что было бы, если бы вы использовали github), или я уверен, что есть множество других вещей. Это может помочь прояснить некоторые вещи, которые я пропустил или недостаточно хорошо объяснил: Изменение вашего происхождения .

Надеюсь, это поможет ответить на ваш вопрос. Приветствия.

1 голос
/ 16 сентября 2009

Запустите это в своем клонированном репозитории git:

 git config branch.master.remote origin

чтобы позаботиться о сообщении "Ты просил меня потянуть, не сказав мне" ...

Затем, если вы знаете, куда было перемещено удаленное репо, вы можете сделать в своем новом клонированном локальном репо git diff с этой даты.

$ git diff "@{yesterday}"
$ git whatchanged --since="2 weeks ago"

Примечание: в предстоящих git1.6.5 упоминается

Формат даты, доступной для записи человеком, с различными вариантами, например, «--since=yesterday», «master@{2000.09.17}» учат правильно выводить некоторые пропущенные данные.

См. Также вопрос SO " Как вы получаете Git, чтобы всегда тянуть из определенной ветви? "

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