Migração do repositório git local para o repositório git remoto

Para a conveniência da discussão a seguir, chamaremos o armazém git a ser migrado como um armazém local e o armazém git remoto como um armazém remoto. Exigindo manter os registros de envio, a seguir estão as etapas de migração.

1. Crie um armazém remoto vazio

1.1 Crie na página da web GitLab

Após a conclusão da criação, você obterá o endereço git: http://10.69.12.11/android/hello.git

1.2 Crie usando a API fornecida pelo GitLab ou GitHub

Para usar a API da maneira mais simples, escreverei um script de shell no arquivo de configuração ~ / .bashrc para concluir:

~$ vim ~/.bashrc

Adicione o seguinte conteúdo no final de .bashrc:

  • Versão do GitLab:
repo_create(){
		# 判断是否存在参数,有,则赋给repo_name变量,否则使用当前目录作为repo_name的值
        if [ $1 ];then
                repo_name=$1
        else
                repo_name=`basename $(pwd)`
                echo "set Repo Name to ${repo_name}"
        fi
        # 使用GitLab Api创建远程仓库
        # oExkVZEW2WKDcoF6mXdW是Personal access tokens,在gitlab web上创建
        # name=${repo_name}是指定仓库的名称
        # namespace_id=12是group id可以在gitlab上查到
        # http://10.69.12.11/api/v4/projects,则是GitLab服务器的地址,及api
        curl -k --request POST --header "PRIVATE-TOKEN:oExkVZEW2WKDcoF6mXdW" --data "name=${repo_name}&namespace_id=12" http://10.69.12.11/api/v4/projects
}
  • Versão do GitHub:
repo_create(){
		# 判断是否存在参数,有,则赋给repo_name变量,否则使用当前目录作为repo_name的值
        if [ $1 ];then
                repo_name=$1
        else
                repo_name=`basename $(pwd)`
                echo "set Repo Name to ${repo_name}"
        fi
        # 使用GitHub Api创建远程仓库
        # 8ad7a0e3faaa7574c4c1f38b5280c7d9ecf980ab是Personal access tokens,在GitHub上创建
        # '{"name":"'${repo_name}'"}'是指定仓库的名称
        curl -u '[email protected]:8ad7a0e3faaa7574c4c1f38b5280c7d9ecf980ab' https://api.github.com/user/repos -d '{"name":"'${repo_name}'"}'
}

Execute o comando de origem para usar o arquivo de configuração para entrar em vigor:

~$ source ~/.bashrc

Use repo_create para criar um armazém remoto:

~$ repo_create Hello

Após a criação bem-sucedida, ele retornará para http://10.69.12.11/android/hello.git.
Referência da API do GitLab https://docs.gitlab.com/ce/api/

2. Exclua o armazém remoto originalmente associado ao armazém local

~/local_project$ git remote rm origin

3. Associe o armazém local ao novo armazém remoto

~/local_project$ git remote add origin http://10.69.12.11/android/hello.git

Nota : Se a operação do ponto 2 não for realizada, o seguinte erro será relatado:

fatal: origem remota já existe.

4. Envie o código do armazém local para o cache a ser enviado

~/local_project$ git add .

5. Escreva uma nota (opcional)

~/local_project$ git commit -m "迁移Local_project项目到远程hello仓库"

6. Histórico de mesclagem (quando o armazém remoto é criado e inicializado, ele realiza a operação git init, é necessário executar esta etapa; caso contrário, pule

6.1 Especifique a filial a ser mesclada

~/local_project$ git branch --set-upstream-to=origin/master master

Nota: O acima mencionado significa mesclar a filial principal local com a origem remota / filial principal.

6.2 Iniciar fusão

~/local_project$ git pull origin master --allow-unrelated-histories

7. Envie o código

Enviar código para armazém remoto

~/local_project$ git push -u origin master

Clique para seguir:

Insira a descrição da imagem aqui

Publicado 381 artigos originais · elogiou 85 · 80.000 visualizações +

Acho que você gosta

Origin blog.csdn.net/weixin_40763897/article/details/105555429
Recomendado
Clasificación