Импорт из Bitbucket в Stash с историей?

Мы перемещаем наши репозитории из Bitbucket в нашу локальную среду в Stash. Я могу импортировать последнюю версию наших репозиториев, но не детали предыдущих коммитов и версий.

Не могли бы вы подсказать мне, что мне делать, чтобы импортировать наши репозитории со всеми ветками, коммитами и деталями версии?

Вот как мы импортируем наши репозитории:

  1. Создайте папку локально, используя Tortise Git, клонируйте ее.
  2. Откройте Git Bash, перейдите в эту папку (каталог), изменив путь с помощью команды CD
  3. Выполните следующие команды: git init

    git add --all
    
    git commit -m "Initial Commit"  
    
    git remote add origin http://User@localhost:7990/scm/PROJECT/repo.git
    git push -u origin master
    

Поскольку я новичок в Git, это может быть неправильный способ сделать это.


person Toubi    schedule 03.10.2013    source источник


Ответы (2)


Тебе следует:

  • клонировать репозиторий Bitbucket
  • создать локальную ветку для всех веток Bitbucket
  • толкнуть все в тайник.

Это означает:

git clone -o bitbucket https://bitbucket.org/username/reponame
cd reponame
remote=bitbucket ; for brname in `git branch -r | grep $remote | grep -v master | grep -v HEAD | awk '{gsub(/[^\/]+\//,"",$1); print $1}'`; do git branch --set-upstream-to $brname  $remote/$brname ; done
git remote add origin http://User@localhost:7990/scm/PROJECT/repo.git
git push --all
git push --tags

Пара замечаний:

  • Я назвал удаленный репозиторий Bitbucket «bitbucket» вместо «origin» по умолчанию.
    Это потому, что в конечном итоге вы будете работать с репозиторием Stash по умолчанию.
    Это Вот почему я зарезервировал удаленное имя «origin» для указанного репозитория Stash.

  • Создание локальной ветки для каждой ветки bitbucket описано здесь: "Отслеживать все удаленные ветки git как локальные ветки".

  • Я бы не рекомендовал работать в этом локальном репозитории (который отслеживает все ветки Bitbucket).
    Я бы предпочел клонировать только что заполненный репозиторий Stash в другом месте и работать оттуда.

person VonC    schedule 04.10.2013

Чтобы импортировать файлы проекта, историю коммитов и т. д., вы можете сделать что-то вроде:

git clone --bare [email protected]:/login/myrepo.git
cd myrepo.git
git push --mirror [email protected]:/project/myrepo.git
cd ..
rm -rf myrepo.git
person Slipstream    schedule 15.04.2014