git .gitignore – Como resolver quando o arquivo já foi adicionado

O .gitignore não funciona corretamente após adicionarmos o arquivo ao git (by git add).

Para que o arquivo ou pasta seja ignorado é necessário rodar 2 comandos:

  1. git reset name_of_file (desanexo / desmembra o arquivo e mantem no repositório)
  2. git rm –cached name_of_file (utilize esse comando para remover o arquivo do repositório após pushing).

 

Referencia:

https://stackoverflow.com/questions/4308610/how-to-ignore-certain-files-in-git

 

 

Armazenar Credencias Github

Armazenar Credencias Github

 

Linux:

git config --global credential.helper cache

OSX:

git config --global credential.helper osxkeychain

Windows:

git config --global credential.helper wincred

Forçar funcionamento do .gitignore

Os arquivos / pastas em seu controle de versão não serão apenas excluídos apenas porque você os adicionou ao .gitignore agora. Eles já estão no repositório. Você deve removê-los. Você pode fazer isso com isso:

  • git rm -rf – em cache.
  • git add.

Isso remove todos os arquivos do repositório e os adiciona novamente (desta vez respeitando as regras em seu .gitignore).

Lembre-se de comprometer tudo o que você mudou antes de fazer isso.

 

https://stackoverflow.com/questions/25436312/gitignore-not-working

O que é branch, trunk e tag (GIT)

Trunk

É o principal tronco de desenvolvimento, seguindo desde o início do projeto até o presente. É nele que o projeto deve se basear sempre. Normalmente é gerido por um desenvolvedor e recebe merges após aprovação de alguém que é responsável pelo projeto. Não faz sentido existir mais do que um trunk.

Branch

É um galho da árvore de desenvolvimento. É uma cópia do código derivado de um certo ponto do trunk que é utilizado para a aplicação de mudanças no código, preservando a integridade do código no trunk. Se as mudanças funcionam de acordo com o planejado, elas geralmente são mescladas de volta para o tronco principal (trunk). É muito usado para experimentos e para desenvolvimentos paralelos.

É usado o tempo todo. Apesar do trunk ser o repositório principal, todo o desenvolvimento costuma ser feito em cima dos galhos locais ou remotos dependendo do fluxo de trabalho escolhido. É comum chamarmos o branch de versão de trabalho. É um rascunho que pode ser guardado para depois, para jogar fora, permanecer privado para um desenvolvedor ou grupo específico sem entrar no projeto.

Onde existem muitos branches pode criar dificuldades para executar o merge, por isso cada vez mais sistemas de controle de versão distribuídos estão fazendo cada vez mais sucesso em projetos muito ativos e principalmente descentralizados. Por isso é comum não incentivar branches descontroladamente quando se usa SVN.

Em muitos casos o branch funciona como uma futura versão.

Tag

É um marcador de um estado do código em um determinado momento. É um ponto no tempo no trunk ou em um branch que você deseja preservar. As duas principais razões para a preservação seriam:

  • este é um grande lançamento do software, se alfa, beta, RC ou RTM;
  • este é o ponto mais estável do software antes de aplicar revisões importantes sobre o trunk.

Não é comum trabalhar em cima de uma tag. É criado um marco que pode ser acessado facilmente. Quando encontrar um bug em versão antiga que precisa de uma solução, é fácil criar um branch em cima dele para fazer o conserto.

O que costuma diferenciar tag de branch é justamente a estabilidade do conteúdo. Você não deve deveria mexer em um repositório tag. Ele se diferencia do trunk por ser algo secundário e quase sempre está no passado.

Como usar

Em projetos de código aberto, os branches que não são aceitos no trunk pelos participantes do projeto podem se tornar as bases para forks, por exemplo.

Fork costuma ser um repositório completamente novo, com seu próprio trunk mas que é derivado de um repositório original (mesmo que este já seja um fork). É uma árvore de desenvolvimento nova mas criada de outra árvore. É comum haver comunicação entre estas árvores e em alguns casos até bidirecionalmente. Nestes casos o trunk de um acaba funcionando como branch de outro. Desta forma percebe-se que estes conceitos são bem abstratos.

Os conceitos apresentados são recomendações. Nada impede dos desenvolvedores fazerem de uma forma totalmente diferente se for mais adequado para o projeto. Esta é uma forma consagrada e provavelmente mais adequada para a maioria dos casos. Quanto menor a equipe e mais centralizado é o processo, menos vantagens existem em usar este esquema. E de fato é comum, mesmo em projetos open source pequenos, que o desenvolvimento acabe sendo feito essencialmente em cima do trunk e forks costumam funcionar como branches do projeto.

É preciso experimentar alguns fluxos de trabalho diferentes e escolher o que traz maior benefício para seu projeto.

 

Fluxo

Baseada em https://stackoverflow.com/a/16163/221800 e outras respostas da página.

GitHub – Reset de commit

Este reset abaixo faz com que volte o reset básico, que seria somente o commit e não o add.
Portanto o add continua em vigor, porém você consegue fazer o commit novamente, até para poder comentar novamente!
Exemplo 1:
git reset –soft HEAD^

Este outro exemplo, já seria para voltar toda ação do commit que você fez, tanto o add quanto o comentário.
Exemplo 2:
git reset HEAD^

Caso você tenha mais que um commit e queira voltar todos, basta repetir a sua ação do exemplo2.

GIT Hub – Comandos

git clone git@github.com:conta/projeto.git :: Primeira vez que vai pegar o projeto do repositório para a máquina.
git clone -b producao git@github.com:pgs/pames.git :: desta maneira, será pego direto do branch producao

git status  :: Verificar situação das alterações
git add (. = todos) (/ ou caminho)    :: Adiciona os arquivos para comitar
git commit -m "descrição"  :: Faz o comit dentro de seu repositório
git push :: Efetiva o commit para o repositório  e exibe se existiram erros!
git pull :: Faz a atualização do repositório para sua máquina (update)
git checkout (caminho) :: pega e sobrescreve seu arquivo com o do repositório (mask a merge)
git rm  (caminho arquivo) :: para excluir arquivos
CONFIGURAR NOME E EMAIL
git config --global user.name "Firstname Lastname"Sets the name of the user for all git instances on the system
git config --global user.email "your_email@youremail.com"

CONFIGURAR NOVO BRANCH

git branch :: Mostra os branch existentes e qual está selecionado no seu repositório
git branch export :: cria um novo branch chamado "export"
git checkoud -f export :: faz um checkout de seu repositório para o "export" novo brach (fica sendo "export" como principal)
git pull origin queries :: pega os arquivos do branch "queries" e copia para seu repositório chamado "export".
git push origin export :: vai criar o branch "export" e joga os arquivos para o repositório online, porque antes disto ele só existia no seu repositório local.

Enviado por: Marcus
Referência: http://help.github.com/linux-set-up-git/