-
Notifications
You must be signed in to change notification settings - Fork 0
/
aulas.txt
96 lines (68 loc) · 4.4 KB
/
aulas.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
Git/GitHub Aula 01
# unstage (nao esta no repositorio git) -> stage (prepara para dar commit) -> commited (versionado no git !local!)
No bash
$ pwd # mostra onde estou
$ ls # lista o que tem no diretorio
$ cd # muda de diretorio
$ touch [filename] # cria um arquivo
$ && # operador que executa múltiplos comandos
$ mv [filename] [filename] # renomeia um arquivo
$ cat [filename] # mostra o conteúdo do arquivo
$ cat > [filename] # cria um arquivo
$ echo "Hello World" > [filename] # cria/escreve uma linha de texto arquivo e escreve "Hello World" no arquivo criado
attrib -s -h -r /s /d # no Windows para mostrar pastas ocultas (inicando com .)
$ ls -a # no Linux para mostrar pastas ocultas
$ git init . # cria novo repositorio git
$ git status # ver status da branch atual
$ git log # exibe historico de commits
$ git add <arquivo> # manda arquivo para stage (pre-commit) ie informa o que quer salvar
$ git commit -m "text here" # consolida o checkpoint
$ git reset # retorna para unstage
$ git reset idCommit # retorna para pos-commit
$ git branch # checa em qual ramificacao do projeto voce esta mexendo
$ git checkout -b <nome branch> # muda e cria uma nova ramificacao (sem o -b so muda de branch para uma existente)
$ git merge <nome branch> # junta os arquivos da branch que voce esta (geralmente na main) com a branch que voce selecionou (feature)
$ git branch -D <nome branch> # deleta a branch desejada
[-b] = branch
Git/GitHub Aula 02 - GitHub
# sobe para o GitHub tudo que foi feito local (na feature), faz Pull Request para atualizar a main remota e atualiza o repositorio local com git pull
# Sempre que for clonar um repositorio no GitHub, pegue o link no Repositório remoto > <> Code > SSH
ssh-keygen -t rsa # criar chave ssh e dar Enter ate voltar ao input
cat ~/.ssh/id_rsa.pub # apos ter digitado a linha anterior escreve essa e copia o output e cola no GitHub o output do SSH gerado em Settings > SSH
## Sempre que trocar ou formatar de PC, precisa fazer o processo novamente! (é igual uma chave e fechadura, se mudar a fechadura, tem que ter uma chave nova)
$ git clone <endereco do repositorio no github> # clona o repositorio do github na nuvem
$ git push <para onde eg origin> <qual branch eg main> # empura do local para o remoto que foi clonado (quando origin) e na branch (main) que esta trabalhando
$ git pull # esteja seguro que esteja na branch main e faca o pull do rep remoto
# README: alteracoes na main devem ser feitas apenas no rep remoto via Pull Request!
# fork - a partir de um repo de um terceiro, você garfa e usa como desejar (colab/melhora/etc)
Git/GitHub Aula extra - gitignore e gitkeep
Criar arquivo .gitignore
No arquivo adicionar um arquivo (por linha) que não deseja ser versionado.
Se uma extensão eg .csv nunca será versionada, então basta adicionar:
*.csv # se trata de um curinga, todo arquivo .csv será ignorado em [git add .]
Quando se deseja subir para o repositório remoto uma pasta com todos os arquivos ignorados pelo .gitignore, basta adicionar ao dir o .gitkeep que, mesmo "vazia" o dir será versionado
```sh
git add -A && git commit --amend --no-edit && git push -f
```
/ git cherry-pick [commit] || [whole-branch] # Pega apenas um commit específico - usa o git log (ou git graph) para saber o endereço do commit (usando git log)
a - b - c - d Main
\
e - f - g Feature
supondo que o commit f deseja ser passado para a main:
1: garantir que está na main
$ git checkout main
2: através do git log ou git reflog pegar o commit ID
$ git cherry-pick [f]
a - b - c - d - f Main
\
e - f - g Feature
/ git rebase explanation:
o---o---o---o---o main
\
o---o---o---o---o feature
$ git rebase
o---o---o---o---o---o'---o'---o'---o'---o' main
$ git merge
o---o---o---o---o------------o main
\ /
o---o---o---o---o feature