Comandos Básicos do GIT (Windows, Mac OSX e Linux)

Instalação

Baixe o GIT aqui :D

 

Criando um novo repositório GIT

crie uma nova pasta, abra-a e execute o comando

git init

para criar um novo repositório.

 

Obtenha um repositório

crie uma cópia de trabalho em um repositório local executando o comando

git clone /caminho/para/o/repositório

quando usar um servidor remoto, seu comando será

git clone usuário@servidor:/caminho/para/o/repositório

 

Fluxo de trabalho

seus repositórios locais consistem em três “árvores” mantidas pelo git. a primeira delas é sua Working Directory que contém os arquivos vigentes. a segunda Index que funciona como uma área temporária e finalmente a HEAD que aponta para o último commit (confirmação) que você fez.

 

Adicionar & Confirmar

Você pode propor mudanças (adicioná-las ao Index) usando

git add
git add *

Este é o primeiro passo no fluxo de trabalho básico do git. Para realmente confirmar estas mudanças (isto é, fazer um commit), use

git commit -m "comentários das alterações"

Agora o arquivo é enviado para o HEAD, mas ainda não para o repositório remoto.

 

Enviando alterações

Suas alterações agora estão no HEAD da sua cópia de trabalho local. Para enviar estas alterações ao seu repositório remoto, execute

git push origin master

Altere master para qualquer ramo (branch) desejado, enviando suas alterações para ele.

Se você não clonou um repositório existente e quer conectar seu repositório a um servidor remoto, você deve adicioná-lo com

git remote add origin

Agora você é capaz de enviar suas alterações para o servidor remoto selecionado.

 

Ramificando

Branches (“ramos”) são utilizados para desenvolver funcionalidades isoladas umas das outras. O branch master é o branch “padrão” quando você cria um repositório. Use outros branches para desenvolver e mescle-os (merge) ao branch master após a conclusão.

crie um novo branch chamado “funcionalidade_x” e selecione-o usando

git checkout -b funcionalidade_x

retorne para o master usando

git checkout master

e remova o branch da seguinte forma

git branch -d funcionalidade_x

um branch não está disponível a outros a menos que você envie o branch para seu repositório remoto

git push origin

 

Atualizar & Mesclar

para atualizar seu repositório local com a mais nova versão, execute

git pull

na sua pasta de trabalho para obter e fazer merge (mesclar) alterações remotas.
para fazer merge de um outro branch ao seu branch ativo (ex. master), use

git merge

em ambos os casos o git tenta fazer o merge das alterações automaticamente. Infelizmente, isto nem sempre é possível e resulta em conflitos. Você é responsável por fazer o merge estes conflitos manualmente editando os arquivos exibidos pelo git. Depois de alterar, você precisa marcá-los como merged com

git add

antes de fazer o merge das alterações, você pode também pré-visualizá-as usando

git diff

 

rotulando

é recomendado criar rótulos para releases de software. Este é um conhecido conceito, que também existe no SVN. Você pode criar um novo rótulo chamado 1.0.0 executando o comando

git tag 1.0.0 1b2e1d63ff

o 1b2e1d63ff representa os 10 primeiros caracteres do id de commit que você quer referenciar com seu rótulo. Você pode obter o id de commit com

git log

você pode também usar menos caracteres do id de commit, ele somente precisa ser único.

 

sobrescrever alterações locais

No caso de você ter feito algo errado (que seguramente nunca acontece ;) você pode sobrescrever as alterações locais usando o commando

git checkout --

isto substitui as alterações na sua árvore de trabalho com o conteúdo mais recente no HEAD. Alterações já adicionadas ao index, bem como novos arquivos serão mantidos.

Se ao invés disso você deseja remover todas as alterações e commits locais, recupere o histórico mais recente do servidor e aponte para seu branch master local desta forma

git fetch origin

git reset --hard origin/master

 

dicas úteis

Inteface gráfica padrão

gitk

usar saídas do git coloridas

git config color.ui true

exibir log em apenas uma linha por commit

git config format.pretty oneline

fazer inclusões interativas

git add -i

Voce pode ver o manual completo em http://git-scm.com/doc

Bom Trabalho! :D

Instalar ANT no Mac OSX

Obtendo o ANT

Visite: http://ant.apache.org/bindownload.cgi

Na seção “Current Release of Ant” selecione o .zip do Binário, ao termino do download, descompacte a pasta e renomeie para “ant”

Copie e cole a pasta ant no seu diretório home

Editando o seu Profile

No terminal navege até seu diretório Home

$ cd ~

Ainda pelo terminal abra o seu Profile para edição com um editor de texto

$ open -e .bash_profile

Navegue até a pasta /ant/bin

$ cd /ant/bin

Obtenha o caminho completo para o diretório bin, o meu ficou /Users/tilowr/ant/bin

$ pwd

No editor de texto adicione o ant ao profile colocando a linha

export PATH=${PATH}:/Users/tilowr/ant/bin

Salve e Feche

Atualizando o Profile e Testando o ANT

volte ao diretório Home

$ cd ~

Execute o Profile

$ . .bash_profile

Em alguns casos é preciso fechar o terminal e abrir novamente

Execute o Comando ANT

$ ant

Se tudo deu certo você verá a mensagem:


Buildfile: build.xml does not exist!
Build failed

Exibindo arquivos ocultos no Mac OS

Abra o terminal e digite:

defaults write com.apple.finder AppleShowAllFiles -bool true

em seguida abra o “Gerenciador de Tarefas” apertando as teclas command + option + esc simultaneamente e force o fechamento do finder

tela

para voltar a exibi-los basta mudar o ultimo parâmetro para false:

defaults write com.apple.finder AppleShowAllFiles -bool false

Navegando entre telas do android usando Intent

O intent é a declaração de intenção de usar uma tela (activity), com o intent você pode disponibilizar uma tela (activity) do seu app como funcionalidade para outros, ou mesmo, navegar passando parâmetros entre as telas e registrando no histórico de navegação, dessa forma, o botão voltar sempre funcionará perfeitamente.

Primeiro cria sua activity e declare ela no AndroidManifest.xml dentro do campo application, no exemplo a seguir estou declarando três activitys (Main, Cadastro e Termos de Uso)

    
        
            
                

                
            
        
        
            
            
                

                
            
        
        
            
            
                

                
            
        
    

Agora nos arquivos Java você declara a intenção de navegação, farei um exemplo apenas da Main para a Cadastro que pode ser replicado em todas as suas Activitys

MainActivity.java

Primeiro importe a classe content e a class Widget.Button

       import android.content.Intent;
       import android.widget.Button;

Logo após a abertura do MainActivity declare o botão que vai utilizar.

        public class MainActivity extends Activity {
	     private Button bt_cadastrese;

Dentro do Metodo onCreate, após o setContentView(); faça um o bind do click, repare que eu chamei um metodo gotoCadastro() que vamos cria-lo no próximo passo.

        @Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		bt_cadastrese = (Button) findViewById(R.id.bt_cadastrese);
		
		bt_cadastrese.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				gotoCadastro();
			}
		});
	}

Dentro do MainActivity crie um método privado que no meu caso chamei de gotoCadastro, e declare a Intent, nela você pode passar parâmetros ou apenas a activity que pretende navegar e em seguindo chame o startActivity que é o que executa a navegação

       private void gotoCadastro(){
		Intent iCadastroActivity = new Intent("br.com.tilowr.acerteiro.CADASTRO");
                startActivity(iCadastroActivity);
	}

ao final sua MainActivity.java ficará assim:

package br.com.tilowr.acerteiro;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {
	private Button bt_cadastrese;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		bt_cadastrese = (Button) findViewById(R.id.bt_cadastrese);
		
		bt_cadastrese.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				gotoCadastro();
			}
		});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}
	
	private void gotoCadastro(){
		Intent iCadastroActivity = new Intent("br.com.tilowr.acerteiro.CADASTRO");
        startActivity(iCadastroActivity);
	}

}