remote - push pull fetch git




Como puxar diretório específico com git (6)

Eu tenho um projeto com git, e eu só quero clonar ou puxar um diretório específico, como myproject / javascript assim como o subversion faz.
faça algumas alterações, confirme e empurre novamente.
É possível?


  1. cd na parte superior da sua cópia do repo
  2. git fetch
  3. git checkout HEAD path/to/your/dir/or/file

    • Onde " path/... " em (3) começa no diretório logo abaixo da raiz do repositório contendo seu " .../file "

    • OBSERVE que ao invés de "HEAD", o código hash de um commit específico pode ser usado, e então você irá obter a revisão (file) ou revisions (dir) específica daquele commit.


Às vezes, você só quer dar uma olhada nas cópias anteriores dos arquivos sem a ladainha de passar pelos diffs.

Nesse caso, é tão fácil fazer um clone de um repositório e verificar o commit específico que você está interessado e dar uma olhada no subdiretório desse repositório clonado. Como tudo é local, você pode simplesmente excluir esse clone quando terminar.


Em um diretório vazio:

git init
git remote add [REMOTE_NAME] [GIT_URL]
git fetch REMOTE_NAME
git checkout REMOTE_NAME/BRANCH -- path/to/directory

Entendo. Vou tentar criar submódulos e ver se funciona para mim. Vou reportar resultados. EDIT: check-out esparso e submodules funcionou para mim. Os links que eu usei para ler sobre (dados por VonC e Michel Jansen) são:

Como git-pull todos, mas uma pasta

http://www.kernel.org/pub/software/scm/git/docs/git-read-tree.html#_sparse_checkout

http://vmiklos.hu/blog/sparse-checkout-example-in-git-1-7

http://www.kernel.org/pub/software/scm/git/docs/git-read-tree.html#_sparse_checkout

atualização do submodule git


Talvez este comando possa ser útil:

git archive --remote=MyRemoteGitRepo --format=tar BranchName_or_commit  path/to/your/dir/or/file > files.tar

"Et voilà"


git clone --filter do Git 2.19

Esta opção irá realmente pular a busca de objetos desnecessários do servidor.

Eu escrevi uma resposta detalhada explicando o status atual do suporte em: Como clonar um subdiretório apenas de um repositório Git?

É muito provável que o que for implementado para o git clone nessa área também tenha análogos de git pull .







pull