Что означают «форк» и «push upstream» для GitHub? - PullRequest
8 голосов
/ 26 апреля 2011

В настоящее время я использую GitHub для проекта с моим профессором в колледже. Поскольку я не слишком знаком с GitHub, я не могу понять инструкции, которые он мне прислал.

Я надеялся, что кто-нибудь сможет истолковать это для меня и помочь мне понять это.

Студент должен использовать GIT Hub и использовать Project7 филиал. Вилка его собственная репозиторий и толчок недавно разработанный ветка вверх по течению к основному проекту хранилище

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

Ответы [ 3 ]

6 голосов
/ 26 апреля 2011

Первая часть инструкции довольно понятна. Вам необходимо:

  • Войдите в GitHub, перейдите в репозиторий профессора и нажмите «Вилка».
  • Найдите URL-адрес SSH для вашего форка репозитория и локально клонируйте его, например:

    git clone git@github.com:whoever/whatever.git
    
  • Если вы запустите git branch -r, вы должны увидеть, что теперь у вас есть ветка удаленного отслеживания origin/Project7
  • Вам нужно поработать с этой веткой, поэтому вам нужно создать локальную ветку на основе origin/Project7. Вы можете сделать это с помощью:

    git checkout -b Project7 origin/Project7
    
  • Теперь вы должны сделать свою разработку и создать коммиты, как обычно, чтобы продвинуть свою ветку Project7.

Вот та часть, которая мне немного непонятна:

[...] подтолкнуть новую ветвь вверх по течению к основному репозиторию проекта

Это может означать:

(a) Чтобы вы вернули свою ветку обратно в свой собственный разветвленный репозиторий на GitHub. Вы можете сделать это с помощью: git push origin Project7

С другой стороны, это может означать (b) , что ваш профессор добавил вас в качестве соавтора в свой репозиторий на GitHub и хочет, чтобы вы отправили новую ветвь в его репозитории. В этом случае вы можете сделать что-то вроде:

git remote add professor git@github.com:professor/whatever.git 
git push professor Project7:WarDoGG-Project7

Это подтолкнет вашу ветку Project7 к новой ветке в хранилище профессора под названием: WarDoGG-Project7. Или он может захотеть, чтобы вы просто продвинули его ветку, вернувшись к исходному Project7, и в этом случае вы можете просто пропустить часть команды :<destination-branch>.

Я думаю, что ситуация (a) более вероятна, но вы должны проверить.

2 голосов
/ 26 апреля 2011

Из инструкций я понимаю, что:

1) Вы должны перейти на главную страницу github проекта (после входа в систему) и нажать на верхнюю правую кнопку "Fork".Таким образом вы перенаправили основной проект на свою учетную запись github.

2) Клонируйте свой разветвленный проект на свой компьютер:

3) В своем локальном репозитории git: > git checkout -b Project7 origin/Project7

4) Работа над кодом ....

5) Внесите изменения в репозиторий github.

6) Сделайте запрос на извлечение github в основной репо.

1 голос
/ 26 апреля 2011

Он говорит вам загрузить хранилище, а затем переключиться на ветку Project7 и отключить вашу собственную ветку. Вы должны быть в состоянии клонировать раздвоенный репо, следуя этим инструкциям (работает точно так же, как обычный клон, за исключением того, что сначала вы должны разветвить его на github):

http://help.github.com/fork-a-repo/

Затем, после клонирования, переключитесь на ветку Project7

.

git checkout -b newlocalbranchname origin / branch-name

Затем убедитесь, что вы возвращаетесь к своей ветке:

имя ветви git push

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