Como configurar o próprio servidor GIT? O que é repos nua / não nua?

10

Estou tentando configurar um servidor GIT simples. Eu tenho o Ubuntu instalado em um Virtual PC (Virtual Box). Eu instalei o GIT, criei um repo etc

git init 
git add .
git commit "..."

Então, no Windows, fiz algo como abaixo (no cygwin)

git clone [email protected]:proj1

Tentei fazer alterações então

git commit -am "..."

mas tem algo como

EusuponhoqueeuconfigureioGITerrado?Eulialgorelacionadoarepositóriosbare/non-bare?Devousarnuaotempotodo?Eutentei

[email protected]:proj1

mastemproj1.git,arquivos/pastasestranhoscomo(HEADetc)dentro.QualéamaneiracorretadeconfiguraroGIT?

tambémalguémpodeexplicarreposnus/não-nus,estoumeioqueperdido,comoGitHub,nãoexistetalcoisa!

ATUALIZADOem28deabrilde201118h00UTC+8

Eutenteiseguiro link e no Ubuntu (Server) fiz

git init --bare

em seguida, no Windows (Client / Cygwin) fez

git init 
// added readme.txt 
git add .
git commit -m "..."
git remote add origin master [email protected]:proj2
git push origin master

nenhum erro parece ok. Mas no Ubuntu, eu não vejo onde estão meus arquivos? Eu olhei para branches/ para 1 nth ali?

    
por JM at Work 28.04.2011 / 11:03

2 respostas

9

Um repositório "normal" é um diretório que contém o repositório atual e uma cópia de trabalho. O repositório atual está localizado em um subdiretório oculto com o nome .git . A cópia de trabalho são os arquivos e diretórios com os quais você trabalha.

Um repositório "vazio" é apenas o conteúdo do diretório .git , sem uma cópia de trabalho.

Você não pode trabalhar em um repositório vazio. Primeiro, você precisa clonar o repositório nu em um repositório normal e, em seguida, trabalhar no clone.

Na sua primeira tentativa, você criou um repositório "normal". Então você clonou isso. Então você tentou empurrar de volta para o repositório normal. Então você recebeu um aviso. Você não deve empurrar para um repositório normal. Git avisa quando você tenta fazer isso. Você deve enviar apenas para um repositório vazio.

Na sua segunda tentativa, você criou um repositório "simples". Então você criou um repositório "normal". Então você empurrou do normal para o repositório nu. Isso é (um dos) fluxo (s) de trabalho esperado (s). É por isso que você não tem erros ou avisos.

Quando você quer trabalhar em seu projeto a partir da máquina Windows e da máquina Ubuntu, você tem duas opções:

  1. Crie um repositório vazio (não importa onde). Então clone daquele repositório, um na máquina windows e outro na máquina ubuntu. Agora, empurre os clones para o repositório vazio e puxe do repositório para os clones. Não empurre para os repositórios normais.

  2. Crie dois repositórios normais, um na máquina windows e outro na máquina ubuntu. Agora, ao trabalhar no Ubuntu, você pode puxar da máquina do Windows e vice-versa. Não empurre um para o outro.

Linha de fundo: apenas empurre para os repositórios nus. Em todos os outros casos, quando você pensa em empurrar de A para B, vá para B e puxe de A.

Parece que você é muito novo para o git. Por favor, leia um ou ambos dos seguintes livros muito bons: Git Book , Pro Git .

    
por 28.04.2011 / 12:50
1

Por que você não usa apenas o MSysGit, aqui estão alguns nettuts:

Como instalar e configurar um servidor Git Repository usando o Gitolite Linux Ubuntu 11.04 ou 10.04 com clientes Windows usando MSysGit

ou

Como instalar e configurar um servidor Git Repository usando o Gitolite Linux Ubuntu 10.04 e amp; 11.04 [Ambiente de desenvolvimento]

    
por 12.09.2011 / 20:26

Tags