9. git-completion
# Copie o arquivo do source do Git
~$ cp $GIT_SOURCE/contrib/completion/git-completion.bash ~/.git-completion.sh
10. git-completion
# Copie o arquivo do source do Git
~$ cp $GIT_SOURCE/contrib/completion/git-completion.bash ~/.git-completion.sh
# Edite seu .bashrc
~$ vim ~/.bashrc
11. git-completion
# Copie o arquivo do source do Git
~$ cp $GIT_SOURCE/contrib/completion/git-completion.bash ~/.git-completion.sh
# Edite seu .bashrc
~$ vim ~/.bashrc
# Adicionando a seguinte linha
source ~/.git-completion.sh
12. git-completion
# Copie o arquivo do source do Git
~$ cp $GIT_SOURCE/contrib/completion/git-completion.bash ~/.git-completion.sh
# Edite seu .bashrc
~$ vim ~/.bashrc
# Adicionando a seguinte linha
source ~/.git-completion.sh
# Recarregue o ~/.bashrc
~$ source ~/.bashrc
22. prompt
# Edite seu .bashrc
~$ vim ~/.bashrc
# Adicionando a seguinte linha
export PS1='w$(__git_ps1 "(%s)")'
# Recarregue o ~/.bashrc
~$ source ~/.bashrc
25. prompt
# Em um repositório git
~$ cd git-tricks
~/git-tricks(master)$
26. prompt
# Em um repositório git
~$ cd git-tricks
~/git-tricks(master)$ git checkout branch-name
27. prompt
# Em um repositório git
~$ cd git-tricks
~/git-tricks(master)$ git checkout branch-name
Switched to branch 'branch-name'
~/git-tricks(branch-name)$
28. prompt
# Em um repositório git
~$ cd git-tricks
~/git-tricks(master)$ git checkout branch-name
Switched to branch 'branch-name'
~/git-tricks(branch-name)$ export GIT_PS1_SHOWDIRTYSTATE=true
~/git-tricks(branch-name)$
29. prompt
# Em um repositório git
~$ cd git-tricks
~/git-tricks(master)$ git checkout branch-name
Switched to branch 'branch-name'
~/git-tricks(branch-name)$ export GIT_PS1_SHOWDIRTYSTATE=true
~/git-tricks(branch-name)$ ls
README
~/git-tricks(branch-name)$
30. prompt
# Em um repositório git
~$ cd git-tricks
~/git-tricks(master)$ git checkout branch-name
Switched to branch 'branch-name'
~/git-tricks(branch-name)$ export GIT_PS1_SHOWDIRTYSTATE=true
~/git-tricks(branch-name)$ ls
README
~/git-tricks(branch-name)$ echo "Olá" >> README
31. prompt
# Em um repositório git
~$ cd git-tricks
~/git-tricks(master)$ git checkout branch-name
Switched to branch 'branch-name'
~/git-tricks(branch-name)$ export GIT_PS1_SHOWDIRTYSTATE=true
~/git-tricks(branch-name)$ ls
README
~/git-tricks(branch-name)$ echo "Olá" >> README
~/git-tricks(branch-name *)$
32. prompt
# Em um repositório git
~$ cd git-tricks
~/git-tricks(master)$ git checkout branch-name
Switched to branch 'branch-name'
~/git-tricks(branch-name)$ export GIT_PS1_SHOWDIRTYSTATE=true
~/git-tricks(branch-name)$ ls
README
~/git-tricks(branch-name)$ echo "Olá" >> README
~/git-tricks(branch-name *)$ git add README
33. prompt
# Em um repositório git
~$ cd git-tricks
~/git-tricks(master)$ git checkout branch-name
Switched to branch 'branch-name'
~/git-tricks(branch-name)$ export GIT_PS1_SHOWDIRTYSTATE=true
~/git-tricks(branch-name)$ ls
README
~/git-tricks(branch-name)$ echo "Olá" >> README
~/git-tricks(branch-name *)$ git add README
~/git-tricks(branch-name +)$
34. prompt
# Em um repositório git
~$ cd git-tricks
~/git-tricks(master)$ git checkout branch-name
Switched to branch 'branch-name'
~/git-tricks(branch-name)$ export GIT_PS1_SHOWDIRTYSTATE=true
~/git-tricks(branch-name)$ ls
README
~/git-tricks(branch-name)$ echo "Olá" >> README
~/git-tricks(branch-name *)$ git add README
~/git-tricks(branch-name +)$ export GIT_PS1_SHOWSTASHSTATE=true
~/git-tricks(branch-name +)$
35. prompt
# Em um repositório git
~$ cd git-tricks
~/git-tricks(master)$ git checkout branch-name
Switched to branch 'branch-name'
~/git-tricks(branch-name)$ export GIT_PS1_SHOWDIRTYSTATE=true
~/git-tricks(branch-name)$ ls
README
~/git-tricks(branch-name)$ echo "Olá" >> README
~/git-tricks(branch-name *)$ git add README
~/git-tricks(branch-name +)$ export GIT_PS1_SHOWSTASHSTATE=true
~/git-tricks(branch-name +)$ git stash
36. prompt
# Em um repositório git
~$ cd git-tricks
~/git-tricks(master)$ git checkout branch-name
Switched to branch 'branch-name'
~/git-tricks(branch-name)$ export GIT_PS1_SHOWDIRTYSTATE=true
~/git-tricks(branch-name)$ ls
README
~/git-tricks(branch-name)$ echo "Olá" >> README
~/git-tricks(branch-name *)$ git add README
~/git-tricks(branch-name +)$ export GIT_PS1_SHOWSTASHSTATE=true
~/git-tricks(branch-name +)$ git stash
~/git-tricks(branch-name $)$
37. prompt
# Em um repositório git
~$ cd git-tricks
~/git-tricks(master)$ git checkout branch-name
Switched to branch 'branch-name'
~/git-tricks(branch-name)$ export GIT_PS1_SHOWDIRTYSTATE=true
~/git-tricks(branch-name)$ ls
README
~/git-tricks(branch-name)$ echo "Olá" >> README
~/git-tricks(branch-name *)$ git add README
~/git-tricks(branch-name +)$ export GIT_PS1_SHOWSTASHSTATE=true
~/git-tricks(branch-name +)$ git stash
~/git-tricks(branch-name $)$ export GIT_PS1_SHOWUNTRACKEDFILES=true
~/git-tricks(branch-name $)$
38. prompt
# Em um repositório git
~$ cd git-tricks
~/git-tricks(master)$ git checkout branch-name
Switched to branch 'branch-name'
~/git-tricks(branch-name)$ export GIT_PS1_SHOWDIRTYSTATE=true
~/git-tricks(branch-name)$ ls
README
~/git-tricks(branch-name)$ echo "Olá" >> README
~/git-tricks(branch-name *)$ git add README
~/git-tricks(branch-name +)$ export GIT_PS1_SHOWSTASHSTATE=true
~/git-tricks(branch-name +)$ git stash
~/git-tricks(branch-name $)$ export GIT_PS1_SHOWUNTRACKEDFILES=true
~/git-tricks(branch-name $)$ touch NEWFILE
63. commit.template
template para a mensagem de commit
~$ cat ~/.commit-message.txt
Assunto
O que eu fiz
[ticket: X]
64. commit.template
template para a mensagem de commit
~$ cat ~/.commit-message.txt
Assunto
O que eu fiz
[ticket: X]
~$ git config --global commit.template ~/.commit-message.txt
65. commit.template
template para a mensagem de commit
~$ cat ~/.commit-message.txt
Assunto
O que eu fiz
[ticket: X]
~$ git config --global commit.template ~/.commit-message.txt
~$ git commit
Assunto
O que eu fiz
[ticket: X]
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Changes to be committed:
67. help.autocorrect
roda o comando correto, mesmo se você digitou errado
68. help.autocorrect
roda o comando correto, mesmo se você digitou errado
~$ git stat
git: 'stat' is not a git command. See 'git --help'.
Did you mean this?
status
~$
69. help.autocorrect
roda o comando correto, mesmo se você digitou errado
~$ git stat
git: 'stat' is not a git command. See 'git --help'.
Did you mean this?
status
~$ git config --global help.autocorrect 1
~$
70. help.autocorrect
roda o comando correto, mesmo se você digitou errado
~$ git stat
git: 'stat' is not a git command. See 'git --help'.
Did you mean this?
status
~$ git config --global help.autocorrect 1
~$ git stat
WARNING: You called a Git command named 'stat', which does not exist.
Continuing under the assumption that you meant 'status'
in 0.1 seconds automatically...
# On branch master
nothing to commit (working directory clean)
~$
76. branch.autosetuprebase
`git pull` sempre com rebase em todos os “tracking branches”
~$ git config --global branch.autosetuprebase always
# Chega de digitar `git pull --rebase`!
80. git commit --verbose
Exibe um diff abaixo da mensagem de commit
~/git-tricks(master)$ echo "Mundo" >> README
~/git-tricks(master *)$
81. git commit --verbose
Exibe um diff abaixo da mensagem de commit
~/git-tricks(master)$ echo "Mundo" >> README
~/git-tricks(master *)$ git commit -a -v
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
[...]
#
diff --git a/README b/README
index 1ca34a8..feae20b 100644
--- a/README
+++ b/README
@@ -1 +1,2 @@
Olá
+Mundo
91. git status -s -b
mensagem de status curta
~/git-tricks(master)$ git status -s -b
## master...origin/master [ahead 2, behind 3]
M README
A TODO
?? LICENSE
?? AUTHORS
~/git-tricks(master)$
93. git push -u
envia um branch e configura o tracking
94. git push -u
envia um branch e configura o tracking
~/git-tricks(fixes)$ git push -u origin fixes
* [new branch] fixes -> fixes
Branch fixes set up to track remote branch fixes from origin.
~/git-tricks(fixes)$
96. git checkout -t
cria, faz checkout e tracking de branches remotos
97. git checkout -t
cria, faz checkout e tracking de branches remotos
~/git-tricks(master)$ git checkout -t origin/fixes
Branch fixes set up to track remote branch fixes from origin.
Switched to a new branch 'fixes'
~/git-tricks(fixes)$
113. stash
guarda as alterações em um “commit” temporário
114. stash
guarda as alterações em um “commit” temporário
~/git-tricks(master)$ echo "Hello World" >> README
~/git-tricks(master)$ git status -s
M README
~/git-tricks(master)$
115. stash
guarda as alterações em um “commit” temporário
~/git-tricks(master)$ echo "Hello World" >> README
~/git-tricks(master)$ git status -s
M README
~/git-tricks(master)$ git stash
Saved working directory and index state WIP on master: 51e034d typo
HEAD is now at 51e034d typo
~/git-tricks(master)$
116. stash
guarda as alterações em um “commit” temporário
~/git-tricks(master)$ echo "Hello World" >> README
~/git-tricks(master)$ git status -s
M README
~/git-tricks(master)$ git stash
Saved working directory and index state WIP on master: 51e034d typo
HEAD is now at 51e034d typo
~/git-tricks(master)$ git status -s
~/git-tricks(master)$ git stash list
stash@{0}: WIP on master: 51e034d typo
~/git-tricks(master)$
117. stash
guarda as alterações em um “commit” temporário
~/git-tricks(master)$ echo "Hello World" >> README
~/git-tricks(master)$ git status -s
M README
~/git-tricks(master)$ git stash
Saved working directory and index state WIP on master: 51e034d typo
HEAD is now at 51e034d typo
~/git-tricks(master)$ git status -s
~/git-tricks(master)$ git stash list
stash@{0}: WIP on master: 51e034d typo
~/git-tricks(master)$ git show stash@{0}
commit 2f7289f68669d3b5e70ecff1ba7e3ac4742135e9
Merge: 51e034d 36167ac
Author: Arthur Zapparoli <arthurzap@gmail.com>
Date: Wed Feb 20 20:23:47 2011 -0300
118. stash
guarda as alterações em um “commit” temporário
~/git-tricks(master)$ git stash pop
~/git-tricks(master)$ git status -s
M README
~/git-tricks(master)$ git status list
~/git-tricks(master)$
119. stash
guarda as alterações em um “commit” temporário
~/git-tricks(master)$ git stash pop
~/git-tricks(master)$ git status -s
M README
~/git-tricks(master)$ git status list
~/git-tricks(master)$ git stash save "mensagem"
Saved working directory and index state On master: mensagem
HEAD is now at 51e034d typo
~/git-tricks(master)$ git stash list
stash@{0}: On master: mensagem
~/git-tricks(master)$
121. staging area
tenho 2 arquivos, quero adicionar só 1
122. staging area
tenho 2 arquivos, quero adicionar só 1
~/git-tricks(master)$ git status
# On branch master
# Changed but not updated:
#
# modified: AUTHORS
# modified: README
#
no changes added to commit (use "git add" and/or "git commit -a")
~/git-tricks(master)$
123. staging area
tenho 2 arquivos, quero adicionar só 1
~/git-tricks(master)$ git status
# On branch master
# Changed but not updated:
#
# modified: AUTHORS
# modified: README
#
no changes added to commit (use "git add" and/or "git commit -a")
~/git-tricks(master)$ git add README
~/git-tricks(master)$ git status
# On branch master
# Changes to be committed:
#
# modified: README
#
# Changed but not updated:
#
# modified: AUTHORS
#
~/git-tricks(master)$
124. staging area
tenho 2 arquivos, quero adicionar só 1
~/git-tricks(master)$ git commit -m "English!"
[master 76b2c02] English
1 files changed, 1 insertions(+), 0 deletions(-)
~/git-tricks(master)$
125. staging area
tenho 2 arquivos, quero adicionar só 1
~/git-tricks(master)$ git commit -m "English!"
[master 76b2c02] English
1 files changed, 1 insertions(+), 0 deletions(-)
~/git-tricks(master)$ git status
# On branch master
# Changed but not updated:
#
# modified: AUTHORS
#
no changes added to commit (use "git add" and/or "git commit -a")
~/git-tricks(master)$
126. staging area
quando eu quero adicionar apenas uma parte de um arquivo
127. staging area
quando eu quero adicionar apenas uma parte de um arquivo
~/git-tricks(master)$ git status -s
M AUTHORS
~/git-tricks(master)$
128. staging area
quando eu quero adicionar apenas uma parte de um arquivo
~/git-tricks(master)$ git status -s
M AUTHORS
~/git-tricks(master)$ git add -i
*** Commands ***
1: [s]tatus 2: [u]pdate 3: [r]evert 4: [a]dd untracked
5: [p]atch 6: [d]iff 7: [q]uit 8: [h]elp
What now>
129. staging area
quando eu quero adicionar apenas uma parte de um arquivo
~/git-tricks(master)$ git status -s
M AUTHORS
~/git-tricks(master)$ git add -i
*** Commands ***
1: [s]tatus 2: [u]pdate 3: [r]evert 4: [a]dd untracked
5: [p]atch 6: [d]iff 7: [q]uit 8: [h]elp
What now> 5
1: unchanged +2/-0 [A]UTHORS
Patch update>> 1
* 1: unchanged +2/-0 [A]UTHORS
Patch update>>
diff --git a/AUTHORS b/AUTHORS
index e69de29..5db9767 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -0,0 +1,2 @@
+Arthur
+Guilherme
Stage this hunk [y,n,q,a,d,/,e,?]?
130. staging area
quando eu quero adicionar apenas uma parte de um arquivo
Stage this hunk [y,n,q,a,d,/,e,?]?
y - stage this hunk
n - do not stage this hunk
q - quit; do not stage this hunk nor any of the remaining ones
a - stage this hunk and all later hunks in the file
d - do not stage this hunk nor any of the later hunks in the file
g - select a hunk to go to
/ - search for a hunk matching the given regex
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
k - leave this hunk undecided, see previous undecided hunk
K - leave this hunk undecided, see previous hunk
s - split the current hunk into smaller hunks
e - manually edit the current hunk
? - print help
@@ -0,0 +1,2 @@
+Arthur
+Guilherme
Stage this hunk [y,n,q,a,d,/,e,?]?
131. staging area
quando eu quero adicionar apenas uma parte de um arquivo
Stage this hunk [y,n,q,a,d,/,e,?]? e
# Manual hunk edit mode -- see bottom for a quick guide
@@ -0,0 +1,2 @@
+Arthur
+Guilherme
# ---
# To remove '-' lines, make them ' ' lines (context).
# To remove '+' lines, delete them.
# Lines starting with # will be removed.
#
# If the patch applies cleanly, the edited hunk will immediately be
# marked for staging. If it does not apply cleanly, you will be given
# an opportunity to edit again. If all lines of the hunk are removed,
# then the edit is aborted and the hunk is left unchanged.
132. staging area
quando eu quero adicionar apenas uma parte de um arquivo
Stage this hunk [y,n,q,a,d,/,e,?]? e
# Manual hunk edit mode -- see bottom for a quick guide
@@ -0,0 +1,2 @@
+Arthur
+Guilherme
# ---
# To remove '-' lines, make them ' ' lines (context).
# To remove '+' lines, delete them.
# Lines starting with # will be removed.
#
# If the patch applies cleanly, the edited hunk will immediately be
# marked for staging. If it does not apply cleanly, you will be given
# an opportunity to edit again. If all lines of the hunk are removed,
# then the edit is aborted and the hunk is left unchanged.
*** Commands ***
1: [s]tatus 2: [u]pdate 3: [r]evert 4: [a]dd untracked
5: [p]atch 6: [d]iff 7: [q]uit 8: [h]elp
What now> 7
Bye.
~/git-tricks(master)$
133. staging area
quando eu quero adicionar apenas uma parte de um arquivo
~/git-tricks(master)$ git status
# On branch master
# Changes to be committed:
#
# modified: AUTHORS
#
# Changed but not updated:
#
# modified: AUTHORS
#
~/git-tricks(master)$
135. rebase
reaplica as mudanças de um branch em cima de outro
136. rebase
reaplica as mudanças de um branch em cima de outro
~/git-tricks(master)$ git branch
authors
* master
~/git-tricks(master)$ git branch --no-merged
authors
~/git-tricks(master)$ git log --oneline --graph
* f121878 Fix
* 76b2c02 English
[...]
~/git-tricks(master)$
137. rebase
reaplica as mudanças de um branch em cima de outro
~/git-tricks(master)$ git branch
authors
* master
~/git-tricks(master)$ git branch --no-merged
authors
~/git-tricks(master)$ git log --oneline --graph
* f121878 Fix
* 76b2c02 English
[...]
~/git-tricks(master)$ git merge authors
~/git-tricks(master)$ git log --oneline --graph --decorate
* c81cff6 (HEAD, master) Merge branch 'authors'
|
| * 1e2f8a4 (authors) New Authors
* | f121878 Fix
|/
* 76b2c02 English
138. rebase
reaplica as mudanças de um branch em cima de outro
~/git-tricks(master)$ git branch
authors
* master
~/git-tricks(master)$ git branch --no-merged
authors
~/git-tricks(master)$ git log --oneline --graph
* f121878 Fix
* 76b2c02 English
[...]
~/git-tricks(master)$ git rebase authors
First, rewinding head to replay your work on top of it...
Applying: Fix
~/git-tricks(master)$ git log --oneline --graph --decorate
* b28e647 (HEAD, master) Fix
* 1e2f8a4 (authors) New Authors
* 76b2c02 English
142. reescrevendo a história
editando o último commit
~/git-tricks(master)$ git log --oneline
fceaeb5 typo
c1bcf8a Fix
80e9826 Second commit
3247745 Initial commit
~/git-tricks(master)$
amend
143. reescrevendo a história
editando o último commit
~/git-tricks(master)$ git log --oneline
fceaeb5 typo
c1bcf8a Fix
80e9826 Second commit
3247745 Initial commit
~/git-tricks(master)$ echo "." >> README
~/git-tricks(master)$ git commit -a --amend
[master 5dc6308] typo
1 files changed, 2 insertions(+), 1 deletions(-)
~/git-tricks(master)$
amend
144. reescrevendo a história
editando o último commit
~/git-tricks(master)$ git log --oneline
fceaeb5 typo
c1bcf8a Fix
80e9826 Second commit
3247745 Initial commit
~/git-tricks(master)$ echo "." >> README
~/git-tricks(master)$ git commit -a --amend
[master 5dc6308] typo
1 files changed, 2 insertions(+), 1 deletions(-)
~/git-tricks(master)$ git log --oneline
5dc6308 typo
c1bcf8a Fix
80e9826 Second commit
3247745 Initial commit
~/git-tricks(master)$ amend
145. reescrevendo a história
editando o último commit
~/git-tricks(master)$ git log --oneline
fceaeb5 typo
c1bcf8a Fix
80e9826 Second commit
3247745 Initial commit
~/git-tricks(master)$ echo "." >> README
~/git-tricks(master)$ git commit -a --amend
[master 5dc6308] typo
1 files changed, 2 insertions(+), 1 deletions(-)
~/git-tricks(master)$ git log --oneline
5dc6308 typo
c1bcf8a Fix
80e9826 Second commit
3247745 Initial commit
~/git-tricks(master)$ amend
149. reescrevendo a história
editando vários commits de uma só vez
~/git-tricks(master)$ git log --oneline
b28e647 Fix
1e2f8a4 New Authors
76b2c02 English
~/git-tricks(master)$
rebase -i
150. reescrevendo a história
editando vários commits de uma só vez
~/git-tricks(master)$ git log --oneline
b28e647 Fix
1e2f8a4 New Authors
76b2c02 English
~/git-tricks(master)$ git rebase -i HEAD~3
pick 76b2c02 English
pick 1e2f8a4 New Authors
pick b28e647 Fix
# Rebase 76b2c02..b28e647 onto 76b2c02
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
#
#
#
#
If you remove a line here THAT COMMIT WILL BE LOST.
However, if you remove everything, the rebase will be aborted. rebase -i
151. reescrevendo a história
editando vários commits de uma só vez
~/git-tricks(master)$ git log --oneline
b28e647 Fix
1e2f8a4 New Authors
76b2c02 English
~/git-tricks(master)$ git rebase -i HEAD~3
pick 76b2c02 English
edit 1e2f8a4 New Authors
pick b28e647 Fix
# Rebase 76b2c02..b28e647 onto 76b2c02
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
#
#
#
#
If you remove a line here THAT COMMIT WILL BE LOST.
However, if you remove everything, the rebase will be aborted. rebase -i
152. reescrevendo a história
editando vários commits de uma só vez
Stopped at 1e2f8a4... New Authors
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
~/git-tricks(master|REBASE-i)$
rebase -i
153. reescrevendo a história
editando vários commits de uma só vez
Stopped at 1e2f8a4... New Authors
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
~/git-tricks(master|REBASE-i)$ git commit --amend
[detached HEAD 0c434b4] New Authors: Arthur and Guilherme
1 files changed, 2 insertions(+), 0 deletions(-)
~/git-tricks(master|REBASE-i)$ git rebase --continue
Successfully rebased and updated refs/heads/master.
~/git-tricks(master)$ git log --oneline
edac081 Fix
0c434b4 New Authors: Arthur and Guilherme
76b2c02 English
rebase -i
154. reescrevendo a história
editando vários commits de uma só vez
Stopped at 1e2f8a4... New Authors
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
~/git-tricks(master|REBASE-i)$ git commit --amend
[detached HEAD 0c434b4] New Authors: Arthur and Guilherme
1 files changed, 2 insertions(+), 0 deletions(-)
~/git-tricks(master|REBASE-i)$ git rebase --continue
Successfully rebased and updated refs/heads/master.
~/git-tricks(master)$ git log --oneline Antes:
edac081 Fix b28e647 Fix
0c434b4 New Authors: Arthur and Guilherme 1e2f8a4 New Authors
76b2c02 English 76b2c02 English
rebase -i
155. reescrevendo a história
reordenando commits
~/git-tricks(master)$ git log --oneline
edac081 Fix
0c434b4 New Authors: Arthur and Guilherme
76b2c02 English
3933fbc Adding AUTHORS
~/git-tricks(master)$ git rebase -i HEAD~4
pick 3933fbc Adding AUTHORS
pick 76b2c02 English
pick 0c434b4 New Authors: Arthur and Guilherme
pick edac081 Fix
rebase -i
156. reescrevendo a história
reordenando commits
~/git-tricks(master)$ git log --oneline
edac081 Fix
0c434b4 New Authors: Arthur and Guilherme
76b2c02 English
3933fbc Adding AUTHORS
~/git-tricks(master)$ git rebase -i HEAD~4
pick 76b2c02 English
pick edac081 Fix
pick 3933fbc Adding AUTHORS
pick 0c434b4 New Authors: Arthur and Guilherme
rebase -i
157. reescrevendo a história
reordenando commits
~/git-tricks(master)$ git log --oneline
edac081 Fix
0c434b4 New Authors: Arthur and Guilherme
76b2c02 English
3933fbc Adding AUTHORS
~/git-tricks(master)$ git rebase -i HEAD~4
pick 76b2c02 English
pick edac081 Fix
pick 3933fbc Adding AUTHORS
pick 0c434b4 New Authors: Arthur and Guilherme
~/git-tricks(master)$ git log --oneline
c3187e3 New Authors: Arthur and Guilherme
40a5b76 Adding AUTHORS
76bc060 Fix
36553c5 English
~/git-tricks(master)$
rebase -i
159. reescrevendo a história
deletando commits
~/git-tricks(master)$ git log --oneline
c3187e3 New Authors: Arthur and Guilherme
40a5b76 Adding AUTHORS
76bc060 Fix
36553c5 English
~/git-tricks(master)$ git rebase -i HEAD~4
pick 36553c5 English
pick edac081 Fix
pick 3933fbc Adding AUTHORS
pick 0c434b4 New Authors: Arthur and Guilherme
rebase -i
160. reescrevendo a história
deletando commits
~/git-tricks(master)$ git log --oneline
c3187e3 New Authors: Arthur and Guilherme
40a5b76 Adding AUTHORS
76bc060 Fix
36553c5 English
~/git-tricks(master)$ git rebase -i HEAD~4
pick 36553c5 English
pick 3933fbc Adding AUTHORS
pick 0c434b4 New Authors: Arthur and Guilherme
rebase -i
161. reescrevendo a história
deletando commits
~/git-tricks(master)$ git log --oneline
c3187e3 New Authors: Arthur and Guilherme
40a5b76 Adding AUTHORS
76bc060 Fix
36553c5 English
~/git-tricks(master)$ git rebase -i HEAD~4
pick 36553c5 English
pick 3933fbc Adding AUTHORS
pick 0c434b4 New Authors: Arthur and Guilherme
~/git-tricks(master)$ git log --oneline
f648606 New Authors: Arthur and Guilherme
373183d Adding AUTHORS
36553c5 English
~/git-tricks(master)$
rebase -i
163. reescrevendo a história
juntando commits
~/git-tricks(master)$ git log --oneline
f648606 New Authors: Arthur and Guilherme
373183d Adding AUTHORS
36553c5 English
~/git-tricks(master)$ git rebase -i HEAD~3
pick 36553c5 English
pick 373183d Adding AUTHORS
pick f648606 New Authors: Arthur and Guilherme
rebase -i
164. reescrevendo a história
juntando commits
~/git-tricks(master)$ git log --oneline
f648606 New Authors: Arthur and Guilherme
373183d Adding AUTHORS
36553c5 English
~/git-tricks(master)$ git rebase -i HEAD~3
pick 36553c5 English
pick 373183d Adding AUTHORS
squash f648606 New Authors: Arthur and Guilherme
rebase -i
165. reescrevendo a história
juntando commits
~/git-tricks(master)$ git log --oneline
f648606 New Authors: Arthur and Guilherme
373183d Adding AUTHORS
36553c5 English
~/git-tricks(master)$ git rebase -i HEAD~3
pick 36553c5 English
pick 373183d Adding AUTHORS
squash f648606 New Authors: Arthur and Guilherme
~/git-tricks(master)$
# This is a combination of 2 commits.
# The first commit's message is:
Adding AUTHORS
# This is the 2nd commit message:
New Authors: Arthur and Guilherme
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
rebase -i
166. reescrevendo a história
juntando commits
[detached HEAD 8f851b8] Adding AUTHORS
1 files changed, 2 insertions(+), 0 deletions(-)
create mode 100644 AUTHORS
Successfully rebased and updated refs/heads/master.
~/git-tricks(master)$ git log --oneline
8f851b8 Adding AUTHORS
36553c5 English
~/git-tricks(master)$
rebase -i
167. bisect
ajuda a encontrar onde foram introduzidos bugs
168. cherry-pick
escolha quais commits fazer merge