gerenciamento de versão Git, e contrastar a diferença entre SVN

一, Git vs SVN

Git e SVN que é melhor o que é bom, todo mundo tem uma experiência diferente.

Git é uma distribuído, SVN é centralizado

Esta é a maior diferença entre Git e SVN. Se pudermos entender este conceito, ficar a conhecer a diferença mais básica entre os dois. Porque Git é distribuída, de modo Git trabalho suporte offline, muitas operações podem ser realizadas localmente, incluindo o lançamento do blockbuster será seguido por uma função de filial. O SVN deve ser ligado em rede para funcionar corretamente.

Git e conceitos mais complexos, simples SVN e acessível

Todo o controle de ambos os desenvolvedores Git e SVN devo admitir, comandos Git muito, a necessidade trabalho diário para ter add, cometer, status, buscar, empurrar, rebase, etc., para dominar, rebase e mesclagem deve também mestre diferença, buscar e puxar diferença, etc., além disso, existem cherry-pick, submodule, stash e outras funções, apenas ouvindo a estes termos que estão ao redor.

Neste contexto, a facilidade de utilização, SVN para iniciantes será mais melhor. Mas, por outro lado ver, meios Git comando multi-multi-função que, se pudermos agarrar o mais Git recursos, apreciar as maravilhas de que nunca vai voltar a encontrar a era SVN.

Git ramos baratos, SVN ramo caro

Em gerenciamento de versão, o ramo é muitas vezes funções usadas. Antes da versão de lançamento, você precisa publicar ramo, as necessidades de desenvolvimento de grande porte, ramo de funcionalidade de necessidade, haverá um grande ramo de desenvolvimento de equipe, ramo estável e assim por diante. Em grande processo de desenvolvimento de equipe, há muitas vezes são convidados a criar um ramo, e comutação ramo.

git branch é um ponteiro para um commit, os ramos SVN são diretório copiado. Este recurso permite alternar Git ramo muito rapidamente, e criar um custo muito baixo.

E há uma filial local do Git, SVN ramo não local. No processo de desenvolvimento real, muitas vezes encontro alguns dos códigos não terminou, mas a necessidade urgente de lidar com outras questões, se usarmos Git, você pode criar um código que é armazenado filial local não terminou até que o problema tenha sido resolvido, e depois voltar para o local, ramo continuar a completar o código.

Dois, conceitos básicos do Git

O núcleo é um Git fluxo de trabalho conceito.

  • Workspace (Espaço de Trabalho) é um computador no diretório real.
  • área de teste (Index), semelhante à área de cache, temporariamente salvar as alterações.
  • Warehouse District (Repository), dividido em armazém armazém local e remoto.

Mudou de SVN para Git, o mais difícil de entender, e a maioria não entende é a área de teste e armazéns locais. uso hábil Git, vai achar que isso é simplesmente o desígnio de Deus, devido à existência de ambos, então um monte de trabalho para se tornar gerenciável.

Normalmente enviar o código de várias etapas:

  1. submissão add git da área de trabalho para a área de teste
  2. git commit para submeter-se a um armazém local a partir do zero
  3. git push ou git svn dcommit apresentados a partir do armazém local para o repositório remoto

Em geral, lembre-se o seguinte comando, você pode executar o trabalho diário (Foto da internet):

 

 

 

Três comandos, GIT-SVN comumente utilizados

Se o servidor usa SVN, Git, mas quer experimentar a filial local, a operação local offline e outras funções, você pode usar a função Git-SVN.

 

 

 [GIT-SVN]

# Baixar um projeto SVN e toda a sua história de código, e é inicializado para Git repositório 
$ git svn clone - S [Repository]
 # ver a actual situação repositório de 
informações $ git svn
 # recuperar mudanças remoto de repositório de todos os ramos 
$ git svn busca
 # recuperar remoto que muda o branch atual, rebase e fusão com a filial local 
$ git svn rebase
 # carregamento a corrente ramo repositório local para o remoto repositório 
$ git svn dcommit
 # tração novo ramo, e se submeter a um controle remoto repositório 
cópia $ svn [ remote_branch] [new_remote_branch] - m [mensagem]
 # criação de filial local filial remota correspondente 
$ git checkout -b [local_branch] [ remote_branch]

Em quarto lugar, a inicialização

Desde o início desta seção, salvo indicação em contrário, os seguintes comandos são aplicáveis a Git e GIT- SVN. 

# No diretório atual para criar um novo repositório Git 
$ git init
 # download de um projeto e toda a sua história código [Git somente] 
$ git clone [url]

5, a configuração

# Enumerar todos configuração 
$ git config - L
 # para configurar comandar um Alias 
$ git config - , Ltd. Livre Aderir alias.co Caixa 
$ git configuração - , Ltd. Livre Aderir alias.ci a cometer 
$ git configuração - , Ltd. Livre Aderir alias.st Estado 
$ git configuração - , Ltd. Livre Aderir filial alias.br
 # definir as informações do usuário ao enviar o código 
de configuração $ git [- , Ltd. livre Aderir ] user.name " [nome] " 
$ git config [ - , Ltd. livre Aderir ] user.email " [endereço de email] "

perfil do usuário Git está localizado ~ / .gitconfig

arquivo de configuração único repositório Git localizado em ~ / $ PROJECT_PATH / .git / config

Em sexto lugar, adicionar ou remover arquivos

# Todos os arquivos adicionar o diretório atual para a área de preparo 
$ git o Add.
 # Adiciona os arquivos especificados para a área de preparo 
$ git Adicionar <file1> <file2> ...
 # Adiciona o diretório especificado para a área de teste, incluindo seus subdiretórios 
$ git Adicionar <dir> # apagar um arquivo espaço de trabalho e excluir a área de teste em uma RM $ git [arquivo1] [arquivo2] ...
 # parada rastrear o arquivo especificado, mas os restos de arquivos na área de trabalho 
$ git rm - - cache [arquivo]
 # arquivos renomear, e será renomeado para a área de staging 
$ git mv [arquivo-Original] [renomeado-file]

Adicione o nome do arquivo file1 para .gitignore arquivo, Git vai parar rastreamento estado file1.

sete ramos

# Lista todos os ramos locais 
$ git branch
 # Lista todos os ramos locais e remotos ramo 
$ git Branch - A
 # Criar um novo ramo, mas ainda permanecem na atual ramo 
ramo $ git [sucursal de nome]
 # criar um ramo e mudar para o ramo 
$ git checkout -b [new_branch] [-remoto ramo]
 # ligada a um ramo específico, e atualiza a área de trabalho 
$ git checkout [sucursal de nome]
 # fundir ramos para o atual branch 
$ git merge [ramo]
 # selecionando um commit , incorporado no atual ramo 
$ git Cereja- Pick [a cometer]
 # exclusão filial local, parâmetro -D para forçar a remoção ramo 
-d $ git branch [sucursal de nome]
 # exclusão filial remota 
$ git empurrar [remoto]: [ remote-branch]

Oito, submetidas

# Submetido à área de teste distrito do armazém 
$ git commit - m [a mensagem]
 # enviar alterar a área de trabalho e área temporária diretamente para o distrito do armazém 
$ git commit - A
 # mostrar todas diff ao enviar informações 
$ git commit - v
 # enviar temporariamente mudanças na área de memória para o distrito do armazém, fundiu modificada pela última vez, e última modificação das informações apresentadas 
$ git --amend o commit - m [a mensagem]
 # Carregar um ramo local para um remoto repositório especificado 
impulso $ git [remoto] [remoto -branch]

Nine, tração

# Download remoto repositório de todas as alterações (Git apenas) 
$ git fetch [Remote]
 # exibe todas repositório remoto (Git apenas) 
$ git remoto - v
 # informações de exibição para um repositório remoto (Git apenas) 
$ git remoto Mostrar [Remote]
 # adicionar um novo repositório remoto e nome (git apenas) 
$ git adicionar remoto [-remoto name] [url]
 # buscar alteração remota repositório, e mesclar com o ramo local, (git apenas), se usado git-SVN por favor, veja Seção 
$ git pull [remoto] [filiais]
 # buscar mudanças remoto de repositório, e com a fusão rebase filial local, (git apenas), se usado git-SVN, consulte Seção III 
$ git pull --rebase [remoto] [ramo]

Dez, revogação

# Restaurar arquivos para a área de trabalho da área de preparo designado 
$ git checkout [File]
 # todos os arquivos no diretório atual restaurar a área para a área de trabalho encenar 
$ git checkout.
 # Restaurar área de trabalho para especificar a cometer 
$ git checkout [a cometer]
 # Repor arquivo especificado área temporária, com a última confirmação consistente, mas a área de trabalho inalterada 
$ git REAJUSTE [arquivo]
 # redefinir a área de preparo para a área de trabalho, e consistente com o último commit 
$ git a redefinir - duro
 # reinicialização o ponteiro do ramo atual para o especificado cometer, ao mesmo tempo para redefinir a área de teste, mas a área de trabalho inalterada 
$ git REAJUSTE [commit]
 # repor o CABEÇA ramo corrente especificada cometer, ao mesmo tempo para redefinir a área de preparação e área de trabalho, designado cometer consistente com 
$ git RESET - Disco [a cometer]
 # Criar um novo commit, de revogar a designação do cometer 
$ git Revert [a cometer]
 # mudará não confirmadas sobre a área de armazenamento 
$ git stash de
 # restaurar o conteúdo da área de armazenamento para a área de trabalho atual
$ Git stash de pop

XI inquérito

# Arquivos Ver espaço de trabalho para modificar o estado 
$ git status
 # arquivos Ver espaço de trabalho para modificar o conteúdo específico de 
$ git diff [arquivo]
 # ver a área de teste de conteúdo do arquivo 
$ git diff - cache [arquivo]
 # ver o log de alterações repositório 
git log $
 # ver alguém cometer recorde 
$ git log --author = alguém
 # exibir o histórico de um conteúdo de arquivo específico 
log $ git - o p- [arquivo]
 # ver um commit específico de conteúdo 
mostram $ git [commit]

  

Acho que você gosta

Origin www.cnblogs.com/zengming/p/12425001.html
Recomendado
Clasificación