AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1639645
Accepted
Dave
Dave
Asked: 2021-04-06 15:57:16 +0800 CST2021-04-06 15:57:16 +0800 CST 2021-04-06 15:57:16 +0800 CST

Restaurando o repositório Git local da cópia remota sem afetar o diretório de trabalho

  • 772

Eu tenho um repositório Git local do qual mantenho uma cópia de backup da seguinte maneira:

cd /path/to/local/repo
git init
git add -A
git commit -m "Initial commit"
git clone --bare /path/to/repo_backup/my_repo.git
cd /path/to/repo_backup/my_repo.git
git init --bare --shared
cd /path/to/local/repo
git remote add origin /path/to/repo_backup/my_repo.git
git push --set-upstream origin master

Enquanto estive fora por duas semanas, nosso departamento de TI decidiu unilateralmente excluir o diretório .git que era meu repositório local. As alterações foram feitas no diretório de trabalho e não consigo executar o git status para ver quais alterações foram feitas.

Eu preciso restaurar o repositório local do repositório de backup (ou seja, remoto) sem afetar o diretório de trabalho (ou seja, não posso fazer um clone git direto ).

Eu tentei isso via:

cp /path/to/repo_backup/my_repo.git /path/to/local/repo/.git
cd /path/to/local/repo

No entanto, quando executo git status , recebo este erro:

fatal: this operation must be run in a work tree

Como posso restaurar corretamente o repositório local sem afetar o diretório de trabalho?

git linux
  • 2 2 respostas
  • 135 Views

2 respostas

  • Voted
  1. Best Answer
    Max Barraclough
    2021-04-07T15:17:25+08:002021-04-07T15:17:25+08:00

    O cpcomando que você mostrou não tem o -rsinalizador, então espero que ele falhe ao copiar o .gitdiretório.

    Será que você copiou seu novo .gitdiretório para o antigo diretório .git, em vez de substituir o antigo? (Ou seja, criar acidentalmente um .git/.gitsubdiretório)

    Talvez tente:

    mv /path/to/local/repo/.git /path/to/local/repo/TEMP-old-dot-git
    cp -r /path/to/repo_backup/my_repo.git /path/to/local/repo/.git
    

    Além disso, embora possamos converter entre repositórios vazios e não vazios simplesmente renomeando, isso depende dos internos do git, e é possível que o git nem sempre funcione dessa maneira. Usuários git sábios recomendam usar git cloneem vez de renomear.

    Não consigo fazer um clone direto do git

    Você poderia clonar em um diretório temporário e depois mover o diretório .git. A própria operação de clonagem se recusará a colidir com os arquivos existentes de qualquer maneira.

    • 0
  2. xgittech
    2021-04-30T05:27:05+08:002021-04-30T05:27:05+08:00

    A falta da opção -r no comando cp é provavelmente a culpada.
    Em relação à impossibilidade do git clone restaurar a cópia local - você pode fazer isso:

    1. git clone backup "remote" para um diretório diferente
    2. Mova seu diretório de trabalho para o referido diretório diferente (enquanto substitui todos os arquivos)
    3. Mova tudo de volta ao caminho original

    ... mas não faz muito sentido se você puder recuperar o diretório .git.
    Dito isto, usar o repositório git local como backup tem pontos fracos (que você já experimentou); você pode considerar verificar o Git Backup Guide para obter detalhes sobre boas práticas de backup.

    • 0

relate perguntas

  • adicionar git. comando não funciona

  • execute o contêiner do docker como root

  • Como ativar o sensor de impressão digital no domínio e no diretório ativo do Linux

  • Como alterar permanentemente Ctrl + C para Ctrl + K no CentOS 7?

  • Recuperar arquivo excluído do git após o commit

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 Por que uma conexão de Internet gigabit/s via cabo (coaxial) não oferece velocidades simétricas como fibra? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve