среда, 11 декабря 2013 г.

шпорка к git

Шпора по гит. Для нерегулярного перечивывания.
level -- noob --
Следует пробежаться по красивой описалке.
Ускоряем работу, добавив в .gitconfig в хомяке:
[alias]
    lg1 = log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all
    lg2 = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n''          %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all
    lg = !"git lg1"
    st = status
    ci = commit
    co = checkout
    ds = diff --cached # различия между тем, что в индексе, но не закомиччено
    dlc = diff --cached HEAD^ # показать последний коммит
    la = "!git config -l | grep alias | cut -c 7-" # показать список алиасов
Это мой кофиг. Кстати, диффы смотреть очень полезно. Но они бывают разные:
git diff          # покажет изменения недобавленные в индекс командой git add  
git diff --cached # покажет изменения добавленные в индекс, но не не закоммиченные 
git diff --staged # тоже самое
git diff HEAD     # покажет изменения с последнего коммита
git diff HEAD^    # покажет изменения с момента _до_ посделнего коммита
=======================================================================
Working Directory    <----+--------+-------+
        |                 |        |       |
        |              diff HEAD   |       |
        V                 |        |       |
   "git add"              |        |       |
        |                 |        |     diff
        |                 |        |       |
        V                 |        |       |
     Index     <----+-----|--------|-------+
        |           |     |        |       
        |   diff --staged |        |       
        V           |     |        |       
  "git commit"      |     |        |
        |           |     |        |
        |           |     |        |
        V           |     |        |
      HEAD     <----+-----+        |
        |                          |
        |                       diff HEAD^
        V                          |
previous "git commit"              |
        |                          |
        |                          |
        V                          |
      HEAD^          <-------------+ 

Оно же картинкой, взятой с классного блога, который рекомендуется к прочтению.
level -- user --
А вообще надо бы изучить курс молодого бойца.
Но если вам не до этого, а нужно здась и сейчас поправить, то что вы налепили, но не запушили,то можно добавить правки к последнему коммиту
git commit -a --amend
Можно отменить последний коммит, не отменяя изменнения (вы же трудились)
git reset --soft HEAD^ 
А можно вообще удалить коммит к чертям, если все плохо
git reset --hard HEAD^
Понеслись дальше. Возможно вам захочется приладить что-нибудь к гиту.
level --ninja--
Ветвление и стиль проекта надо выработать. Есть хорошие мысли.
Читаем офф. доку, обощаем полученное раньше и постигаем магию.