Para importar de um repositorio git do Azure Devops basta seguir os passos abaixo:
- No AzureDevops Habilite a "alternate authentication credentials" e especifique um nome de usuário e senha
- No AzureDevops vá para o repositório do seu projeto (Que deseja importar) clique em Clonar para obter a URL HTTPS.
- No repositorio novo criado no Github => Importar repositório
- Digite o URL do repositório (etapa 2)
- Digite as credenciais que você criou (etapa 1) quando solicitar credencial
É possivel fazer via linha de comando, basta verificar a documentação clicando aqui
- Por segurança é bom fazer uma copia do seu repositorio Original (vamos chamar o mesmo de repositorio A). As proximas etapas fazem muitas alterações e não seria bom faazer um push errado.
mkdir cloneA
cd cloneA
git clone --branch <branch> --origin origin --progress \
-v <git repository A url>
# eg. git clone --branch master --origin origin --progress \
# -v https://github.com/username/meuprojeto.git
# (assumindo que meuprojeto é o repositório que você deseja copiar)
- Acesse o repositorio criado na sua maquina e evite acidentalmente fazer alterações remotas (por exemplo, enviando um push), exclua o link para o repositório original.
cd <git repository A directory>
# eg. cd meuprojeto
# O caminho da pasta seria ~/cloneA/meuprojeto
git remote rm origin
# Após estar na pasta rode o comando acima
- Percorra seu histórico e arquivos, removendo qualquer coisa que não esteja em FOLDER_TO_KEEP.
git filter-branch --subdirectory-filter <directory> -- --all
# eg. git filter-branch --subdirectory-filter subfolder1/subfolder2/FOLDER_TO_KEEP -- --all
- Limpe os dados indesejados
git reset --hard
git gc --aggressive
git prune
git clean -fd
- Mova todos os arquivos e diretórios para uma nova pasta que você deseja enviar por push para o repositório B.
mkdir <base directory>
#eg mkdir NovaPasta
mv * <base directory>
#eg mv * NovaPasta
Ë possivel fazer via interface caso prefira.
- Para finalizar vamos adicionar as alterações
git add .
git commit
- Caso você não tenha um "Repositorio B" faça.
mkdir cloneB
cd cloneB
git clone <git repository B url>
# eg. git clone
https://github.com/username/novoprojeto.git
- Acesse o Diretorio e faça uma conexão remota com o Repositorio A
cd <git repository B directory>
# eg. cd novoprojeto
# Folder Path is ~/cloneB/novoprojeto
git remote add repo-A <git repository A directory>
# (repo-A pode ser qualquer nome)
# eg. git remote add repo-A ~/cloneA/meuProjeto
- De um Push nas branchs que deseja copiar / Mover para o Repositorio B e em seguida remova a conexão com o Repositorio A
git pull repo-A master --allow-unrelated-histories
# Isto fara o merge do repositorio A para o repositorio B
git remote rm repo-A
# isto remove a conexão com o repositorio A
- Para Finalizar Envie um Push
git push
Se quiser pode apagar as pastas após o termino. Os Arquivos estrão disponiveis no repositorio B