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

У нас есть удаленный мастер на GitHub по адресу: [email protected]:mainproject/mainproject.git и я создал из него форк, нажав на кнопку форка, чтобы он выглядел так: [email protected]:myuser/mainproject.git

Мне не разрешено синхронизировать мой удаленный форк с этим удаленным мастером ([email protected]:mainproject/mainproject.git), мне разрешено только синхронизировать удаленный мастер с моим удаленным форком.

В прошлом я однажды использовал следующие команды, потому что мне так сказали:

git remote add -t master upstream [email protected]:mainproject/mainproject.git
git fetch -a
git merge --ff-only upstream/master
git push origin HEAD

Команда git branch -a показала там тогда:

  master
  tutorial/test1
* tutorial/test2
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/tutorial/test1
  remotes/origin/tutorial/test2
  remotes/upstream/master

Команда git remote -v показала там тогда:

origin   [email protected]:myuser/mainproject.git (fetch)
origin   [email protected]:myuser/mainproject.git (push)
upstream    [email protected]:mainproject/mainproject.git (fetch)
upstream    [email protected]:mainproject/mainproject.git (push)

И тогда там появился файл .git/config:

[core]
  repositoryformatversion = 0
  filemode = false
  bare = false
  logallrefupdates = true
[remote "origin"]
  fetch = +refs/heads/*:refs/remotes/origin/*
  url = [email protected]:myuser/mainproject.git
[branch "master"]
  remote = origin
  merge = refs/heads/master
[remote "upstream"]
  url = [email protected]:mainproject/mainproject.git
  fetch = +refs/heads/master:refs/remotes/upstream/master

Я отправил свои последние изменения с помощью команды git push origin tutorial/test2 в свою удаленную ветку, потому что tutorial/test2 была и остается моей текущей веткой, я работаю над ней. Вот как это работало на моем старом компьютере.

На новом компьютере со свежеустановленной операционной системой я хотел бы продолжить работу над своим проектом в моем удаленном форке. Я хочу продолжить с того места, на котором остановился на старом компьютере, и уже внес последние изменения со старого компьютера на удаленную вилку. Я хотел бы продолжить работу в филиале tutorial/test2.

Мне нужно только повторить все команды Git, которые перечислены выше, на новом компьютере снова после вызова команды git clone [email protected]:myuser/mainproject.git?

Или это было бы неправильно, и теперь мне пришлось бы идти другим путем?


person Jana Weschenfelder    schedule 01.01.2014    source источник


Ответы (1)


Мне нужно только повторить все команды git, перечисленные выше, на новом компьютере снова после вызова команды git clone [email protected]:myuser/mainproject.git?

Это звучит правильно.

Ваш новый компьютер получит новый клон вашего форка, который ничего не знает о вышестоящем удаленном сервере, поэтому вам нужно снова добавить этот удаленный компьютер.
Это то, что я описал в "Разветвление и разветвление в GitHub".

Обратите внимание, что я предпочитаю работать в выделенной ветке, в которой я:

  • перебазировать поверх upstream/master
  • подтолкнуть к моей вилке.

Таким образом, запрос на вытягивание выполняется из этой ветки, а не из master.
При каждой отправке запрос на вытягивание будет обновляться автоматически.
Каждое изменение изолировано в этой ветке (вам не нужно проверять, исходят ли они из upstream/master). или ваш master, так как вы не работаете в master)

Смотрите также:

person VonC    schedule 01.01.2014