Como remover um diretório do repository git?

Eu tenho dois diretórios no meu repository GitHub. Eu gostaria de deletar um deles. Como eu poderia fazer isso sem excluir e recriar o repository inteiro?

Remova o diretório do git e local

Você pode fazer o checkout ‘master’ com os dois diretórios;

git rm -r one-of-the-directories git commit -m "Remove duplicated directory" git push origin  (typically 'master', but not always) 

Remova o diretório do git mas NÃO local

Como mencionado nos comentários, o que você geralmente quer fazer é remover este diretório do git, mas não deletá-lo inteiramente do sistema de arquivos (local)

Nesse caso, use:

 git rm -r --cached myFolder 

Para remover pasta / diretório apenas do repository git e não do local, tente 3 comandos simples.


Etapas para remover o diretório

 git rm -r --cached FolderName git commit -m "Removed folder from repository" git push origin master 

Passos para ignorar essa pasta nos próximos commits

Para ignorar essa pasta das próximas confirmações, crie um arquivo na raiz chamado .gitignore e coloque o nome dessas pastas nele. Você pode colocar quantos quiser

arquivo .gitignore será semelhante a este

 /FolderName 

remover diretório

Se, por algum motivo, o que o karmakaze disse não funcionar, você pode tentar excluir o diretório que deseja excluir (através do navegador do sistema de arquivos), emitindo o comando
git add -A
e depois
git commit -m 'deleting directory'
e depois
git push origin master .

Você pode tentar isto: git rm -rf

Isso forçará a exclusão do diretório.

Se você remover os arquivos no diretório (com git rm como as outras respostas explicam), então o diretório não existe mais no que diz respeito ao git. Você não pode comprometer um diretório vazio, nem pode remover um.

Isto é diferente da subversão onde você tem que explicitamente svn rm emptyfolder/ , e é por isso que a man page para git se descreve como “o rastreador de conteúdo estúpido”

Uma resposta em links “Como adiciono um diretório vazio a um repository git” para o FAQ sobre este assunto :

Atualmente, o design do índice git (área de preparação) permite apenas que os arquivos sejam listados, e ninguém competente o suficiente para fazer a alteração para permitir diretórios vazios se preocupou o suficiente com essa situação para remediá-la.

Os diretórios são adicionados automaticamente ao adicionar arquivos dentro deles. Ou seja, os diretórios nunca precisam ser adicionados ao repository e não são rastreados por conta própria.

Você pode dizer ” git add

” e ele adicionará arquivos lá.

Se você realmente precisa de um diretório para existir nos checkouts, você deve criar um arquivo nele. .gitignore funciona bem para esse propósito; você pode deixá-lo vazio ou preencher os nomes dos arquivos que você espera que apareçam no diretório.

Vá para o seu diretório git e digite o seguinte comando: rm -rf < Directory Name >

Depois de excluir o diretório, confirme as alterações: git commit -m “Your Commit Message”

Em seguida, basta pressionar as alterações no diretório remoto do GIT: git push origin < Branch name >

Eu costumo usar git add --all para remover arquivos / pastas de repositorys remotos

 rm -r folder_name git add --all git commit -m "some comment" git push origin master 

master pode ser substituído por qualquer outra ramificação do repository.

Você pode excluir a pasta localmente e, em seguida, empurrar, como segue:

 git rm -r folder_name git commit -m "your commit" git push origin master 

Você pode usar a tree de fonts do Attlasian (Windows) ( https://www.atlassian.com/software/sourcetree/overview ). Basta selecionar arquivos da tree e apertar o botão “Remover” no topo. Os arquivos serão excluídos do repository local e do database local do git. Então Commit, depois empurre.

Um dos meus colegas sugeriu o BFG Repo-Cleaner, que acho poderoso. Não é apenas excluir dados indesejados, mas também limpar seu repository de qualquer informação de confirmação relacionada.

Primeiro comando git precisa saber quem você é antes de deletar qualquer coisa

  1. git init
  2. git config user.name “alguem”
  3. git config user.email “someone@someplace.com”
  4. git rm -r
  5. git commit -m “excluindo dir”
  6. mestre de origem git push

Para adicionar um novo diretório:

 mkdir  

Mas agora o Git não está ciente deste novo diretório, porque o Git mantém rastros de arquivos e não de diretórios DIRETÓRIO

 git status 

O git não está ciente das alterações que fizemos, por isso adicionamos o arquivo .keep oculto para tornar o Git ciente dessa nova alteração.

 touch /YOUR-directory/.keep 

Agora, se você acertar o git status Git estará ciente das mudanças.

E se você quiser excluir o diretório, você deve usar este comando.

 rm -r  

e Se você verificar usando o git status , verá que o diretório foi removido.

Intereting Posts