Estamos usando um repositório git para armazenar nosso projeto. Temos nossas filiais partindo da filial original. Mas agora queremos criar um novo projeto pequeno para rastrear alguma documentação. Para isso, gostaríamos de criar uma nova ramificação vazia para começar a armazenar nossos arquivos, e eu gostaria que outros usuários da rede clonassem essa ramificação.
Como podemos fazer isso?
Eu tentei algumas coisas, mas elas não funcionaram.
$ mkdir proj_doc; cd proj_doc
$ git init
$ git add .
$ git commit -m 'first commit'
$ git br proj_doc
$ git co proj_doc
$ git br -d master
$ git push origin proj_doc
Parece empurrar a ramificação ok, mas quando faço uma busca ou extração, ele baixa informações de outras ramificações e, em seguida, também recebo alguns arquivos extras de outros projetos. Qual a melhor solução?
git
branch
git-branch
fazineroso
fonte
fonte
submodule
no projeto original, por exemplo,docs/
apontando para o outro repositório. Ou, se você deseja mesclar o código posteriormente, adicione-o como um controle remoto..gitignore
arquivos e também alternar constantemente entre as duas raízes (ramificações). Então, eu também sou a nova abordagem de repo, em uma nova pasta, com os mesmos controles remotos e empurrando para outro ramo.Respostas:
Você pode criar uma ramificação como órfã:
Isso criará um novo ramo sem pais. Em seguida, você pode limpar o diretório de trabalho com:
e adicione os arquivos de documentação, confirme-os e envie-os ao github.
Um puxar ou buscar sempre atualizará as informações locais sobre todas as ramificações remotas. Se você deseja extrair / buscar apenas as informações de uma única ramificação remota, é necessário especificá-las.
fonte
git checkout --orphan <branch>
; Não vejo nenhuma listagem de <branch> nogit branch
.git checkout --orphan
pode-se usargit reset --hard
para excluir os arquivos que sobraram.git checkout --orphan <branch>
é porque ela ainda não tem nenhum commit. Após a primeira confirmação,git branch
imprime a nova ramificação.A resposta correta é criar um ramo órfão. Explico como fazer isso em detalhes no meu blog. (Link arquivado)
fonte
Faça um novo ramo vazio como este:
Se seus arquivos do proj-doc já estiverem em uma confirmação em um único subdiretório, você poderá criar a nova ramificação desta maneira:
que pode ser mais conveniente do que
git branch --orphan
se isso iria deixá-lo com um monte degit rm
egit mv
ing a fazer.Tentar
e veja se isso ajuda no seu problema de buscar demais. Além disso, se você realmente deseja apenas buscar uma única ramificação, é mais seguro apenas especificá-la na linha de comando.
fonte
git checkout --orphan new-branch; git reset --hard
xargs
?Se sua versão git não possui a opção --orphan, este método deve ser usado:
Depois de fazer algum trabalho:
fonte
git clean
pode excluir arquivos que você não deseja excluir! Executegit clean -ndx
primeiro para ver quais arquivos serão excluídos antes de executá-lo de verdade com a-f
opçãoDigamos que você tenha uma
master
ramificação com arquivos / diretórios:Passo a passo como fazer um ramo vazio:
git checkout —orphan new_branch_name
ls -la |awk '{print $9}' |grep -v git |xargs -I _ rm -rf ./_
git rm -rf .
touch new_file
git add new_file
git commit -m 'added first file in the new branch'
git push origin new_branch_name
Na etapa 2, simplesmente removemos todos os arquivos localmente para evitar confusão com os arquivos em sua nova ramificação e aqueles que você mantém na
master
ramificação. Em seguida, desvinculamos todos esses arquivos na etapa 3. Finalmente, a etapa 4 e depois estão trabalhando com nosso novo ramo vazio.Quando terminar, você pode alternar facilmente entre seus ramos:
fonte
Com base nesta resposta do Hiery Nomus .
Você pode criar uma ramificação como órfã:
Isso criará um novo ramo sem pais. Em seguida, você pode limpar o diretório de trabalho com:
E então você apenas confirma o branch com o commit vazio e empurra
fonte
Confira esta documentação , possui detalhes claros sobre
fonte
Encontrei esta ajuda:
fonte