Форк существующего репозитория Git только для чтения - PullRequest
3 голосов
/ 08 июня 2011

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

Кто-нибудь знает, как это будет работать для внешнего хранилища?Вот что я попробовал:

% more .git/config 
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "upstream"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git://wiesel.ece.utah.edu/gr-ieee802-15-4.git
[branch "master"]
    remote = origin
    merge = refs/heads/master
[remote "origin"]
    url = git@github.com:wishi/gr_802.15.4.git
    fetch = +refs/heads/*:refs/remotes/origin/*

upstream должен быть удаленным репо и освоить GitHub thingy .Итак, после тривиального первого изменения:

% git commit -a -m "check"
[master 796f97a] check
 1 files changed, 1 insertions(+), 1 deletions(-)

% git push origin master
To git@github.com:wishi/gr_802.15.4.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:wishi/gr_802.15.4.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again.  See the 'Note about
fast-forwards' section of 'git push --help' for details.

Так что имеет смысл: объединить две ветви:

% git merge upstream/master
fatal: 'upstream/master' does not point to a commit

И вот я здесь ...

1 Ответ

8 голосов
/ 08 июня 2011

Не думаю, что это так сложно.

  1. Клонировать исходный репозиторий git clone git://wiesel.ece.utah.edu/gr-ieee802-15-4.git
  2. Создать новый репозиторий на github (скажем, gr-ieee802-15-4 под именем пользователя wishi).
  3. Добавить/ w URL-адрес как удаленного в локальном клоне - git remote add github git@github.com:wishi/gr-ieee802-15-4.git.
  4. Нажмите на недавно добавленный удаленный git push github master

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

Оригинальный автор может добавить URL-адрес только для чтения для вашего репозитория github в качестве удаленного в своем локальном клоне, обновить его и внести все внесенные вами изменения.«Запрос на извлечение» должен быть выполнен через.электронная почта или внешний трекер.

...