Como converter um diretório não vazio existente em um diretório ativo do Git e enviar arquivos para um repositório remoto

644
  1. Eu tenho um diretório não vazio (por exemplo, / etc / something) com arquivos que não podem ser renomeados, movidos ou excluídos.

  2. Quero verificar este diretório no git no lugar.

  3. Eu quero poder enviar o estado deste repositório para um repositório remoto (em outra máquina) usando "git push" ou algo semelhante.

Isso é trivial usando o Subversion (atualmente o fazemos usando o Subversion) usando:

svn mkdir <url> -m <msg>
cd <localdir>
svn co <url> .
svn add <files etc>
svn commit -m <msg>

Qual é o equivalente do git?

Posso "clonar git" em um diretório vazio e simplesmente mover o diretório .git e fazer com que tudo funcione?

HMW
fonte
5
Talvez eu simplesmente não entenda, mas você não pode simplesmente executar git initdentro do diretório local?
Philipp
Você quer dizer que possui um repositório em outro lugar e deseja adicionar a esse repositório todo o conteúdo desse outro diretório que não seja um repositório? Ou você está apenas tentando criar um novo repositório nesse diretório?
Cascabel
Várias respostas mencionam o github, mas a pergunta em si é sobre o git. O github não é git, e não é o centro do universo git.
usar o seguinte comando

Respostas:

1056

Como você configurou um daemon git <url>e um repositório vazio:

cd <localdir>
git init
git add .
git commit -m 'message'
git remote add origin <url>
git push -u origin master
abyx
fonte
12
as instruções do abyx parecem funcionar. Agora corro: git config branch.master.remote origine git config branch.master.merge refs/heads/master o que acabarei será exatamente o mesmo como se eu clonasse o repositório remoto? ou seja, git pulle git push vai funcionar ?
HMW 22/07
35
Isso funcionou para mim também. Eu tive que primeiro criar um projeto AppNameno GitHub. Não estava claro para mim o que exatamente os <url>meios. Portanto, para aqueles que têm a mesma pergunta, nós simplesmente usamos o GitHub.com, não estamos executando nosso repositório e, em seguida, o <url>usado na 5ª linha era algo parecido com isto:https://github.com/CompanyName/AppName
Bart
12
Se você estiver configurando um repositório que não esteja no GitHub, use o 'git --bare init' para configurar o repositório remoto vazio , e não o 'git init' (como eu fiz), ou o envio falhará.
Jdusbabek
3
Só queria acrescentar, que eu não poderia empurrar até que eu fiz a: git pull --rebase
Artemix
6
Se o git rejeitar porque o remote contém algumas pequenas alterações (.README, .gitignore, etc.), tente git pull origin master --allow-unrelated-historiesfazer uma mesclagem.
karlisup
80

É assim que eu faço. Eu adicionei explicações para entender o que diabos está acontecendo.

Inicializar repositório local

  • primeiro inicialize o Git com

    git init

  • Adicione todos os arquivos para controle de versão com

    git add.

  • Crie uma confirmação com a mensagem de sua escolha

    git commit -m 'AddingBaseCode'

Inicializar repositório remoto

  • Crie um projeto no GitHub e copie a URL do seu projeto. como mostrado abaixo:

    insira a descrição da imagem aqui

Vincular repositório remoto com repositório local

  • Agora use o URL copiado para vincular seu repositório local ao repositório remoto do GitHub. Quando você clona um repositório com o git clone, ele cria automaticamente uma conexão remota chamada origem, apontando de volta para o repositório clonado. O comando remote é usado para gerenciar o conjunto de repositórios rastreados.

    origem remota de adição do git https://github.com/hiteshsahu/Hassium-Word.git

Sincronizar

  • Agora precisamos mesclar código local com código remoto. Esta etapa é crítica, caso contrário não poderemos enviar código no GitHub. Você deve chamar 'git pull' antes de enviar seu código.

    mestre de origem do git pull --allow-unrelated-historories

Confirme seu código

  • Por fim, empurre todas as alterações no GitHub

    mestre de origem git push -u

Hitesh Sahu
fonte
1
Eu executei o "git pull" como descrito neste post e obtive um erro. Eu continuei com o "git push" que foi aceito e, quando vou para o Bonobo Git Server, agora consigo ver a alteração. Obrigado por este post com explicações claras sobre o comando GIT.
schlebe
O que isso significa: "e copie o URL do seu projeto e copie o URL do projeto." Isso é um erro de digitação ou você está tentando falar sobre dois URLs diferentes ou?
precisa saber é o seguinte
Isso é um erro tipografia, simplesmente copiar url do projeto, como mostrado na captura de tela
Hitesh Sahu
2
Essa é a resposta correta e deve ser a aceita. A resposta aceita está ausente na etapa "Sincronizar".
Ilan em Ilan
28

Aqui está a minha solução:

git init
git remote add origin PATH/TO/REPO
git fetch
git checkout -t origin/master
csomakk
fonte
Boa solução quando você configurar repo remoto com .gitignore&README.dm
Hattori Hanzo
12

Caso o repositório remoto não esteja vazio (este é o caso se você estiver usando o IBM DevOps no hub.jazz.net), será necessário usar a seguinte sequência:

cd <localDir>
git init
git add -A .
git pull <url> master
git commit -m "message"
git remote add origin <url>
git push

EDIT 30 de janeiro 17: Por favor, veja os comentários abaixo, verifique se você está no repo correto!

Romeo Kienzler
fonte
Os comandos acima varrido toda a minha constrói existente :( Tenha cuidado antes de fazer os passos acima
Selênio Quadro
7

Quando um repositório do github não está vazio, como .gitignore e license

Use pull - permita histórias não relacionadas e push --force-with-lease

Use comandos

git init
git add .
git commit -m "initial commit"
git remote add origin https://github.com/...
git pull origin master --allow-unrelated-histories
git push --force-with-lease
Sebastian Oscar Lopez
fonte
1
Eu precisava modificar essa última declaração para ser mais parecidagit push -u origin master --force-with-lease
cfont
2

A maneira mais simples de fazer isso que acho útil é a abaixo.

Pode não ser o caminho oficial, mas funciona bem.

Suponha que você tenha um projeto chamado " XYZ" no seu PC. Agora você deseja fazer um repositório git deste projeto no github e usar suas funcionalidades.

Etapa 1 : vá para " www.github.com"

Etapa 2 : crie um repositório com um README.mdarquivo " " (nomeie como quiser)

Etapa 3 : clonar o repositório no seu PC.

Etapa 4 : Na pasta clonada, você terá duas coisas: " .git" pasta e um README.mdarquivo " ". Copie esses dois na pasta do projeto " XYZ".

Etapa 5 : exclua o repositório clonado.

Etapa 6 : adicione, confirme e envie todos os arquivos e pastas do seu projeto.

Agora, você pode apenas usar seu projeto " XYZ" como um repositório git.

Gênio
fonte
0

Eu tive um problema parecido. Criei um novo repositório, NÃO NO DIRETÓRIO QUE EU QUERIA FAZER UM REPOSITÓRIO . Em seguida, copiei os arquivos criados no diretório em que desejava criar um repositório. Em seguida, abra um repositório existente usando o diretório para o qual acabei de copiar os arquivos.

NOTA: Eu usei o github desktop para criar e abrir o repositório existente.

página
fonte
0

Aqui está minha solução se você criou o repositório com algum padrão readme fileoulicense

git init
git add -A
git commit -m "initial commit"   
git remote add origin https://<git-userName>@github.com/xyz.git //Add your username so it will avoid asking username each time before you push your code
git fetch
git pull https://github.com/xyz.git <branch>
git push origin <branch> 
Harish Karthick
fonte