Git (inicialização de repositório local)
A criação de repositório git local pode ser útil quando um projeto ainda não possui um repositório remoto. Nesse caso serão necessárias mais configurações do que no caso o repositório remoto já exista.
Inicializar repositório em diretório local
$ mkdir -p /opt/git/app1 $ cd /opt/git/app1 $ git init
- Essa operação não será necessária se o repositório remoto já estiver criado e inicializado, nesse caso use a opção para clonar repositório;
- O primeiro commit irá criar a branch local denominada master;
Adicionar repositório remoto
# Adicionar repositório remoto em diretório local app1-server $ cd /opt/git/app1 $ git remote add [NOME] [CAMINHO] $ git remote add local-app1-server /opt/git/app1-server $ git remote add github git@github.com:reinaldoc/app1.git
- O repositório remoto padrão é comumente denominado como origin
- Um repositório remoto pode ser renomeado com o comando: git remote rename [NOME1] [NOME2]
Obter modificações salvas (commits)
$ git pull [NOME] [BRANCH] $ git pull local-app1-server master
Enviar modificações salvas (commits)
$ git push [NOME] [BRANCH] $ git push -u local-app1-server master
- A opção -u define como padrão o repositório remoto para a branch indicada;
Inicializar repositório que será somente remoto
Um repositório remoto é utilizado para obtenção (pull) e envio (push) dos commits, ainda que seja para outro diretório local.
# Inicializar repositório que será remoto $ mkdir -p /opt/git/app1-server $ cd /opt/git/app1-server $ git init --bare
- A opção –bare é utilizada para repositórios em servidor que mantém apenas o histórico de alterações dentro do diretório .git, sem armazenar os arquivos construídos, ou seja, é um repositório sem Working tree. Isso pode ser útil para reduzir o espaço de armazenamento utilizado para repositórios remotos sem interface web.
- Para construir a Working tree:
- git –git-dir=”[path-bare-repo]” –work-tree=”[path-destination]” checkout -f
Hooks
Hooks permitem a execução de código (ex: shell-script) antes ou após determinados eventos.
$ cd /opt/git/app1/.git/hooks $ cat<code>post-receive</code> cp /opt/git/app1/index.html /var/www/