Slide 1

Slide 1 text

git tricks Kai Höwelmeyer @kaihowl git aficionados meetup 12/13/13

Slide 2

Slide 2 text

git  config  -­‐-­‐global  -­‐-­‐add                        alias.co  checkout       git  config  -­‐-­‐global  -­‐-­‐add                        alias.c  commit      

Slide 3

Slide 3 text

#  On  branch  feature/kh-­‐pipelining   #  Changes  not  staged  for  commit:   #      (use  "git  add  ..."  to  update  what  will  be  committed)   #      (use  "git  checkout  -­‐-­‐  ..."  to  discard  changes  in   #        working  directory)   #   #              modified:      src/lib/access/PipelineCollect.cpp   #              modified:      src/lib/access/PipelineStream.cpp   #              modified:      src/lib/access/system/ResponseTask.cpp   #   no  changes  added  to  commit     (use  "git  add"  and/or  "git  commit  -­‐a")  

Slide 4

Slide 4 text

git  config  -­‐-­‐global  -­‐-­‐add                  alias.s  “status  –sb”  

Slide 5

Slide 5 text

##  feature/kh-­‐pipelining   M    src/lib/access/PipelineCollect.cpp    M  src/lib/access/PipelineStream.cpp    D  src/lib/access/system/ResponseTask.cpp    

Slide 6

Slide 6 text

git  config  -­‐-­‐add  color.ui  1      

Slide 7

Slide 7 text

  git  add  –p     git  reset  –p     git  checkout  -­‐p  

Slide 8

Slide 8 text

  Review before commit git  diff  -­‐-­‐staged  

Slide 9

Slide 9 text

      git  commit  -­‐-­‐amend  

Slide 10

Slide 10 text

  git  stash  [-­‐u]     git  clean  [-­‐df]  

Slide 11

Slide 11 text

diff  -­‐-­‐git  a/src/lib/access/SimplePipeliningTableScan.h   b/src/lib/access/SimplePipeliningTableScan.h   index  8b7133e..0d80830  100644   -­‐-­‐-­‐  a/src/lib/access/SimplePipeliningTableScan.h   +++  b/src/lib/access/SimplePipeliningTableScan.h   @@  -­‐15,7  +15,7  @@  public:            void  setupPlanOperation();        void  executePlanOperation();   -­‐    static  a_planop_ptr  pares(const  Json::Value  &data);   +    static  a_planop_ptr  parse(const  Json::Value  &data);        void  setPredicate(SimpleExpression  *c);        private:  

Slide 12

Slide 12 text

git  diff  -­‐-­‐color-­‐words  

Slide 13

Slide 13 text

diff  -­‐-­‐git  a/src/lib/access/SimplePipeliningTableScan.h   b/src/lib/access/SimplePipeliningTableScan.h   index  4ca9b42..0d80830  100644   -­‐-­‐-­‐  a/src/lib/access/SimplePipeliningTableScan.h   +++  b/src/lib/access/SimplePipeliningTableScan.h   @@  -­‐15,7  +15,7  @@  public:      void  setupPlanOperation();    void  executePlanOperation();    static  a_planop_ptr  paresparse(const  Json::Value  &data);    void  setPredicate(SimpleExpression  *c);     private:    

Slide 14

Slide 14 text

git  reset  -­‐-­‐soft     git  reset  [-­‐-­‐mixed]     git  reset  -­‐-­‐hard  

Slide 15

Slide 15 text

Resets what? head index tree soft ✔ ✗ ✗ mixed ✔ ✔ ✗ hard ✔ ✔ ✔

Slide 16

Slide 16 text

git  reset  c1   git  add   git  commit   c1   c2   c3   c4   HEAD   feature  

Slide 17

Slide 17 text

feature squashing c1   c2   c3   c4   c(2+3+4)’     HEAD   feature  

Slide 18

Slide 18 text

NEVER Reset, rebase, or rewrite history in any way on any SHARED branch! "

Slide 19

Slide 19 text

git  reflog  

Slide 20

Slide 20 text

    git  log  -­‐-­‐first-­‐parent  

Slide 21

Slide 21 text

    git  bisect     C1   C2   C3   C4   C6   C7   C8  

Slide 22

Slide 22 text

    git  bisect     C1   C2   C3   C4   C6   C7   C8   good bad

Slide 23

Slide 23 text

    git  bisect     C1   C2   C3   C4   C6   C7   C8   good bad

Slide 24

Slide 24 text

    git  bisect     C1   C2   C3   C4   C6   C7   C8   good bad good

Slide 25

Slide 25 text

    git  bisect     C1   C2   C3   C4   C6   C7   C8   good bad good bad

Slide 26

Slide 26 text

scm_breeze oh-my-zsh vim powerline

Slide 27

Slide 27 text

Next time How to splice a convoluted feature branch into atomic pull requests.

Slide 28

Slide 28 text

@kaihowl