Изменить github-репозиторий для Rails - PullRequest
5 голосов
/ 14 декабря 2011

Как изменить git-репозиторий, в который помещается приложение Rail? Я знаю, что это возможно, потому что я сделал это несколько недель назад.

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

Когда я запускаю git init в myapps/old_app/, это ставит Reinitialized existing Git repository in /Users/jamespollard/rails/old_repository/.git/

И

Когда я запускаю git init в myapps/new_app/, он помещает Reinitialized existing Git repository in /Users/jamespollard/rails/new_repository/.git/

Однако, когда я пытаюсь что-то толкнуть в репозиторий, он все равно идет в old_repository.

Обновление

Если я введу $ git remote origin set-url git@github.com:mygithub/myapp.git Я получаю

error: Unknown subcommand: origin
usage: git remote [-v | --verbose]
    or: git remote add [-t <branch>] [-m <master>] [-f] [--mirror=<fetch|push>] <name> <url>
    or: git remote rename <old> <new>
    or: git remote rm <name>
    or: git remote set-head <name> (-a | -d | <branch>)
    or: git remote [-v | --verbose] show [-n] <name>
    or: git remote prune [-n | --dry-run] <name>
    or: git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]
    or: git remote set-branches <name> [--add] <branch>...
    or: git remote set-url <name> <newurl> [<oldurl>]
    or: git remote set-url --add <name> <newurl>
    or: git remote set-url --delete <name> <url>
    -v, --verbose         be verbose; must be placed before a subcommand

Если я введу $ git remote set-url git@github.com:mygithub/myapp.git, я получу то же сообщение об ошибке, что и выше (за исключением ошибки источника). В любом случае, если я запускаю git push origin master, он все равно выдвигается к старому хранилищу. Я снова попытался добавить новый репозиторий с тем же именем, но я получаю сообщение об ошибке (которое я ожидаю), говорящее, что оно уже существует.

Ответы [ 4 ]

4 голосов
/ 14 декабря 2011

Создайте новый репозиторий в GitHub для вашего нового приложения, если вы еще этого не сделали. Сделайте этот новый репозиторий как источник вашего нового репозитория:

git remote add origin <github_url>

Если пульт уже существует, возможно, вам придется git remote set-url origin <github_url>

Теперь нажмите на репо.

1 голос
/ 18 ноября 2014

Я столкнулся с довольно похожей ситуацией несколько месяцев назад.В новой версии приложения есть папка .git (которая также была скопирована вместе со всеми другими файлами при копировании приложения).Героку нужна информация из .git, чтобы узнать, изменилось ли что-нибудь.Поэтому, когда он «повторно инициализируется», heroku думает, что это то же самое приложение.

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

  • Скопировал всю папку приложения.
  • Изменено имя приложения, где бы оно ни появлялось (в основном в папке config, найдите его в Google)
  • Измените файл secret.yml (получите новый ключ по секретному рейку) или секретный токен, если установлена ​​более старая версияof rails.

Самое главное, в папке вашего приложения должна быть папка .git (она может быть скрыта).

  • Удалите эту папку .git (она содержит gitинформация о старом приложении)
  • Инициализируйте новый git, git init
  • , а затем подтвердите и нажмите.

Ваше новое приложение теперь должно быть отдельным приложением.

0 голосов
/ 14 декабря 2011

Если вы посмотрите на файл .git/config, вы увидите / убедитесь, что URL все еще указывает на старый пульт

[remote "origin"]
  fetch = +refs/heads/*:refs/remotes/origin/*
  url = <old_github_url>

, поэтому вы хотите сохранить старый пульт.давайте назовем это oldremote.

Первое, что вы можете сделать, это переименовать пульт с помощью:

git remote rename origin oldremote

Теперь вы можете добавить новый пульт с помощью:

git remote add origin <new_github_url>

С этого момента обычное нажатие только с помощью git push приведет к нажатию нового пульта.git push oldremote SHA нажать на старый пульт

ссылка на пульт: http://help.github.com/remotes/

0 голосов
/ 14 декабря 2011

Думаю, это может сработать, если на героку стоит попробовать:

git remote rm heroku
git remote add heroku git@heroku.com:yourappname.git

или вы можете попробовать это

1). открыть терминал

2). Перейдите в ваш_app_directory / .git / config

3). После того, как вы откроете файл конфигурации, отредактируйте его следующим образом:

Изменение

url = git@heroku.com:old_app_name.git

до

url = git@heroku.com:new_app_name.git

Очевидно, заменяя старое имя вашего приложения новым именем. Надеюсь, это поможет

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