| Push |
| ---- |
| |
| [graphviz] |
| ---- |
| digraph { |
| // commit graph left |
| node [style=bold, shape=circle, color="#385d8a", fontname=arial, fontsize=18] |
| edge [style=bold, color="#385d8a", arrowhead=none] |
| D -> C |
| C -> B [weight=0] |
| B -> A |
| |
| // branch pointers |
| edge [arrowhead=normal] |
| node [shape=box, style=filled, fillcolor=lightgrey, color=black] |
| HEAD [fillcolor="#555555", fontcolor=white] |
| master [label="origin/master", fillcolor=lightskyblue] |
| |
| { rank=same; HEAD; feature; D} |
| feature -> D [weight=0] |
| HEAD -> feature [weight=0] |
| |
| { rank=same; master; B } |
| master -> B [weight=0] |
| |
| // graph name |
| local [label="local repo", style=none, color=none] |
| A -> local [style=invis] |
| |
| // formatting: Add invisible node to have the feature branch in an |
| // own column |
| I [style=invis] |
| C -> I [style=invis] |
| { rank=same; A; I } |
| |
| // commit graph right |
| node [style=bold, shape=circle, color="#385d8a", fontname=arial, fontsize=18] |
| edge [style=bold, color="#385d8a", arrowhead=none] |
| A1 [label="A"] |
| B1 [label="B"] |
| B1 -> A1 |
| |
| // branch pointers |
| edge [arrowhead=normal] |
| node [shape=box, style=filled, fillcolor=lightgrey, color=black] |
| master1 [label="master"] |
| { rank=same; master1; B1 } |
| master1 -> B1 [weight=0] |
| |
| // graph name |
| remote [label="remote 'origin' repo", style=none, color=none] |
| A1 -> remote [style=invis] |
| |
| // align left and right graph |
| { rank=same; A; A1} |
| |
| // spacing in between the left and right graph |
| { rank=same; master; space} |
| space [style=invis, label="some space here"] |
| space -> master [style=invis, weight=0] |
| } |
| ---- |
| |
| `Q:` Which commits get pushed? |
| |
| Push |
| ---- |
| |
| [graphviz] |
| ---- |
| digraph { |
| // commit graph left |
| node [style=bold, shape=circle, color="#385d8a", fontname=arial, fontsize=18] |
| edge [style=bold, color="#385d8a", arrowhead=none] |
| C [style=filled, fillcolor=coral1, color=red] |
| D [style=filled, fillcolor=coral1, color=red] |
| D -> C |
| C -> B [weight=0] |
| B -> A |
| |
| // branch pointers |
| edge [arrowhead=normal] |
| node [shape=box, style=filled, fillcolor=lightgrey, color=black] |
| HEAD [fillcolor="#555555", fontcolor=white] |
| master [label="origin/master", fillcolor=lightskyblue] |
| |
| { rank=same; HEAD; feature; D } |
| feature -> D [weight=0] |
| HEAD -> feature [weight=0] |
| |
| { rank=same; master; B } |
| master -> B [weight=0] |
| |
| // graph name |
| local [label="local repo", style=none, color=none] |
| A -> local [style=invis] |
| |
| // formatting: Add invisible node to have the feature branch in an |
| // own column and to keep master branch on the right |
| node [style=invis] |
| edge [style=invis] |
| I -> B |
| { rank=same; A; I2 } |
| A -> I2 |
| master -> I2 |
| |
| // the "push" arrow |
| node [style=invis] |
| L -> R [label="push", style=dotted, penwidth=2, arrowhead=vee, |
| color=red, fontname=arial, fontsize=30] |
| |
| // commit graph right |
| node [style=bold, shape=circle, color="#385d8a", fontname=arial, fontsize=18] |
| edge [style=bold, color="#385d8a", arrowhead=none] |
| C1 [label="C", style=filled, fillcolor=coral1, color=red] |
| D1 [label="D", style=filled, fillcolor=coral1, color=red] |
| A1 [label="A"] |
| B1 [label="B"] |
| D1 -> C1 [color=red] |
| C1 -> B1 [color=red] |
| B1 -> A1 |
| |
| // branch pointers |
| edge [arrowhead=normal] |
| node [shape=box, style=filled, fillcolor=lightgrey, color=black] |
| master1 [label="master", color=red, fontcolor=red] |
| { rank=same; master1; D1 } |
| master1 -> D1 [weight=0, color=red] |
| masterold1 [label="master", style=dashed, color=grey, fontcolor=grey] |
| { rank=same; masterold1; B1 } |
| masterold1 -> B1 [weight=0, style=dashed, color=grey] |
| |
| // graph name |
| remote [label="remote 'origin' repo", style=none, color=none] |
| A1 -> remote [style=invis] |
| |
| // formatting: Add invisible node to keep old master branch on the |
| // right |
| node [style=invis] |
| edge [style=invis] |
| { rank=same; A1; I3 } |
| A1 -> I3 |
| masterold1 -> I3 |
| |
| // align left, right and arrow graph |
| { rank=same; A; A1; L; R } |
| |
| // spacing in between the left and right graph |
| { rank=same; master; space} |
| space [style=invis, label="some space here"] |
| space -> master [style=invis, weight=0] |
| |
| { rank=same; HEAD; space2 } |
| space2 [label="spaace"] |
| space2 -> HEAD [weight=0] |
| } |
| ---- |
| |
| `Q:` Which commits get pushed? |
| |
| `A:` *ALL* commits from the local branch not available in the remote |
| branch |