Как переключать репозитории с одного на другое - PullRequest
1 голос
/ 24 июня 2010

Я использовал репозиторий github от предыдущего разработчика.

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

Теперь я хотел быМне нравится фиксировать Soley в моем репо.

К сожалению, я понял, что никогда не менял свой .git / config, поэтому я все еще принимал старое репо.Я просто изменил его на соответствующий URL-адрес, и когда я набираю:

$> git status

Возвращается:

=> Working directory clean.

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

Мой вопрос такой.Очевидно, я на полпути через процесс сделать это.Нужно ли перепрошивать на обновление, и тогда у меня все хорошо.Или есть специальная команда, которую мне нужно выполнить, чтобы мой локальный ящик знал, что его команда 'git status' нацеливается на новое хранилище, с которым сравнивается?Точно так же я упускаю что-то еще очень важное: D?

Спасибо всем.

Ответы [ 3 ]

3 голосов
/ 24 июня 2010

Вы можете использовать git remote для управления вашим пультом

  • переименовать происхождение
    git remote rename origin old_origin
  • добавить новое происхождение
    git remote add origin git://github.com/my/forked/repo.git
    git fetch origin # will create all the remote branches references 
                     # in your local repo

Вы также можете легко настроить новый апстрим для вашей текущей главной ветки (git 1.7 и более):

git branch --set-upstream master origin/master

Сообщение "nothing to commit (working directory clean)" git status не помешает вам нажать.
После изменения происхождения вы должны увидеть:

$ git status
# On branch master
# Your branch is ahead of 'origin/master' by xxx commits.
#
nothing to commit (working directory clean)

Это означает, что у вас есть некоторые коммиты, чтобы подтолкнуть к вашему новому источнику.

0 голосов
/ 24 июня 2010

В целом, но я должен включить это в этот ответ.Перед этим я вручную изменил свой .git / config, чтобы включить в него новый URL-адрес хранилища.Вот почему мне не пришлось переименовывать или добавлять какие-либо источники, как предложил Фон.

Тогда я только угадал и выполнил

 $> git fetch origin

, который возвратил

From git@github.com:gotoAndBliss/hq_channel
 17326ca..043d395  master     -> origin/master
 * [new branch]      panda_streaming -> origin/panda_streaming
 + 6ec9bf8...becbcc6 testing    -> origin/testing  (forced update)

Затем в статусе git я получил

# On branch testing
# Your branch is ahead of 'origin/testing' by 9 commits.

Я тестировал исходное тестирование git и думаю, что сейчас на цели.

0 голосов
/ 24 июня 2010

git status показывает только состояние вашего рабочего каталога, а не весь репозиторий. Кажется, вам нужно только изменить пульты, которые git push и git pull используют по умолчанию. Откройте .git/config и найдите свои branch.<branch> записи и измените их, а также свои remote.<remote> записи. Например, ваша запись master может выглядеть так:

[branch "master"]
    remote = origin
    merge = refs/heads/master

Просто измените remote на ссылку ваш (раздвоенный) пульт.

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

[remote "myremote"]
    url = git://github.com/me/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*

Вы можете добавить запись push, чтобы ваша ветвь master выдвигалась по умолчанию:

[remote "myremote"]
    url = git://github.com/me/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*
    push = master
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...