- , .
- ...?
Aproximadamente essa reação ocorreu comigo depois de receber o primeiro pool de solicitações de investimento na primeira semana de trabalho em uma grande empresa. O motivo dessa reação é muito simples - nem todo cliente / empregador pode se dar ao luxo de oferecer uma equipe grande em uma plataforma, especialmente o desenvolvimento móvel. Devido à inutilidade e à possibilidade de comunicação rápida em seu mundo, nem todas as coisas que grandes mestres usam em seu campo ganham relevância em equipes pequenas. Simplificando - por que diabos eu preciso se já vivemos bem e lidamos bem sem ele?
Depois de me mudar para uma nova empresa, encontrei o mesmo problema, mas do outro lado das barricadas. Se você ainda não descobriu o que será discutido, este é o GIT, mais precisamente, suas ferramentas integradas no AndroidStudio e como ele facilita nosso trabalho.
Vou tentar ignorar as coisas comuns: init VCS; nova ramificação / renomear / push; rebase / mesclar no ramo; controles remotos, etc, tentarei chamar a atenção para os elementos que, por medo da minha ignorância, evitei por muito tempo (e me arrependo).
Alterar confirmação
No caso em que você decida suplementar suas alterações até o último commit, você deve usar o seguinte comando:
//
git commit --ammend
//
git commit --ammend "New commit message"
E você pode acelerar o processo:
![imagem](https://habrastorage.org/webt/vg/05/fb/vg05fb1mewfyi4o-elm8ge3ukf8.png)
Editar mensagem de confirmação
, PR , , , :
![imagem](https://habrastorage.org/webt/jx/n1/l-/jxn1l-q1v__6vfjkccdiuc5e3eu.png)
Interactive rebase
. , N . , / .
, , … , .
, .
//
git cherry master -v
//
git cherry master | wc -l
GUI:
![imagem](https://habrastorage.org/webt/x4/kb/sn/x4kbsnbbmusg7g2n2-iesrecpjc.png)
tools:
![imagem](https://habrastorage.org/webt/8x/io/ou/8xiooujwqjkhljncnl-n8jk2kfs.png)
, :
![git-rebase-2](https://habrastorage.org/webt/jk/zi/rn/jkzirnqccn794x_sogsfvnajsrq.png)
e :
![imagem](https://habrastorage.org/webt/sb/02/yt/sb02ytb2mi-483eg_e4uoedv-oc.png)
:
![imagem](https://habrastorage.org/webt/fq/5f/md/fq5fmdoigip4extx1pcoputdrvm.png)
:
![imagem](https://habrastorage.org/webt/_e/jk/t9/_ejkt9xdce7o84yppa3y_olny-s.png)
:
# Commands:
# p, pick = ( )
# r, reword = ,
# e, edit = , amend-( )
# s, squash =
# f, fixup = , ( )
, . ? , .
![imagem](https://habrastorage.org/webt/ak/pi/vr/akpivr-wdplstrf8wuat5x1yhrs.png)
Force push .
Multiple remotes
, , , .
![imagem](https://habrastorage.org/webt/ms/nq/i-/msnqi-wkwftfutawyrysaqo4ap4.png)
? 2 (, ), / :
![imagem](https://habrastorage.org/webt/2l/cd/zm/2lcdzmq9m-7bdshd9t5n4sk5rb0.png)
Git blame
:
![imagem](https://habrastorage.org/webt/vm/ed/yy/vmedyyqdycqfatytbyts_uylik8.png)
. , IssueNavigationLink
:
//
<PROJECT_ID>-<TASK-ID>: <COMMIT MESSAGE>
( , git-hooks — https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks)
project/.idea/vcs.xml
:
![imagem](https://habrastorage.org/webt/hf/kd/cz/hfkdczb4qogrs9xkpkz9d8c1zzi.png)
:
<IssueNavigationLink>
<option name="issueRegexp" value="([A-Za-z]+\-)(\d+)" />
<option name="linkRegexp" value="https://github.com/IlyaPavlovskii/Android-Environments/issues/$2" />
</IssueNavigationLink>
ID.
![imagem](https://habrastorage.org/webt/ij/uk/ab/ijukabxurvckt3qw9tu3tqmhkeg.png)
Git cherry-pick
cherry!
, /, , . , , - , . , … , 1 ( ). ?
![imagem](https://habrastorage.org/webt/ll/go/xa/llgoxawfjurey5tb1ndqowmhkpe.png)
![imagem](https://habrastorage.org/webt/lb/2h/v0/lb2hv0ug3h3e-rixsd9hasamzp8.png)
:
![imagem](https://habrastorage.org/webt/k9/mf/db/k9mfdbsiqjf4tb5lrsk1rocl0ho.png)
Concluindo, gostaria de recordar imediatamente o holivar eterno sobre o tema: terminal ou editor de GUI para trabalhar com o VCS? É uma questão de gosto. Está claro que o CLI GIT é uma ferramenta mais poderosa para tarefas específicas sem ela. Porém, para as tarefas diárias, o pacote de utilitários embutido para trabalhar com sistemas de controle de versão no AS é essencial e reduzirá o tempo de desenvolvimento várias vezes.
Espero que você tenha encontrado algo novo neste artigo e tenha ajudado a facilitar sua rotina de trabalho.