Transferir repositórios git copiando

0

Eu queria transferir muitos git repos da minha máquina velha do Windows 7 (git 2.6.3.windows.1) para a nova no Ubuntu 16.04 (git 2.7.4). Como nem todos tinham um repositório remoto, decidi simplesmente copiá-los. Isso deve funcionar. No entanto, todos os arquivos rastreados em todos os repositórios foram desativados. Na verdade, é possível que alguns deles não tenham sido cometidos antes da transferência dos repos, mas a maioria deles foi cometida.

Se eu olhar para diff para o arquivo que foi confirmado antes da transferência do repo com um comando:

$git log -p -1 .gitignore
commit c566830cd3ffdf96556d29aee8dd1dc95d359872
Author: Pavel <[email protected]>
Date:   Fri May 13 18:07:25 2016 +0300

    Start

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..c2535fe
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+__pycache__
+.idea
+test

retorna a referência para o último commit no qual este arquivo foi realmente confirmado. O commit no exemplo acima é o primeiro do repositório.

Assim, por alguma razão, o git se recusa a reconhecer arquivos comprometidos, mas os vincula ao último commit onde eles foram realmente comprometidos.

É o problema de incompatibilidade de diferentes versões ou plataformas git ou algo mais? E como resolver esse problema e não travar repos?

    
por DrDom 21.06.2016 / 22:06

2 respostas

2

Essas mudanças são reais? Parece-me que o git está apenas reclamando que os atributos dos arquivos são diferentes, o que certamente acontecerá entre diferentes sistemas operacionais (porque o Windows e o Linux possuem diferentes sistemas de arquivos com diferentes metadados).

Que tal criar um clone "nu"?

NO WINDOWS

Ir para alguma pasta, por exemplo:

cd c:\mycode

Clone seu repositório localmente nessa pasta usando a opção bare , isso significa que NADA será feito check-out, apenas metadados:

git clone --bare <path_of_your_repo>

Agora, feche a pasta resultante (por exemplo, "c: \ mycode \ < pasta > .git" ) e transfira-a manualmente para o Linux.

NO LINUX

No Linux, copie primeiro a pasta zipada do Windows e descompacte-a. Agora, clone para uma nova pasta, por exemplo:

mkdir ~/mynewcode
cd ~/mynewcode
git clone /<where_you_copied_and_unzipped>/<folder>.git    <--- i.e. this is the folder copied/unzipped from Windows

E agora você pode alterar a origem se quiser descartar a pasta do Windows descompactada.

git remote set-url origin <new_origin>

OU, remova-o completamente:

git remote rm origin
    
por 22.06.2016 / 00:28
0

Que tal empurrá-los para o github, depois clonar o repo no seu Ubuntu? (Teria comentado, mas ainda não tenho 50 repetições)

Se precisar de ajuda, posso fornecer mais instruções.

    
por 21.06.2016 / 22:27

Tags