summaryrefslogtreecommitdiff
blob: 190e7d6ba4b6d6f7d0841d25b37c47117e2d1706 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8"/>
<meta name="generator" content="AsciiDoc 8.6.7"/>
<title>Work In A Branch</title>
<style type="text/css">
/*<![CDATA[*/
/*
  pygmentize filter
*/
.highlight .hll { background-color: #ffffcc }
.highlight  { background: #f4f4f4; }
.highlight .c { color: #008800; font-style: italic } /* Comment */
.highlight .err { border: 1px solid #FF0000 } /* Error */
.highlight .k { color: #AA22FF; font-weight: bold } /* Keyword */
.highlight .o { color: #666666 } /* Operator */
.highlight .cm { color: #008800; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #008800 } /* Comment.Preproc */
.highlight .c1 { color: #008800; font-style: italic } /* Comment.Single */
.highlight .cs { color: #008800; font-weight: bold } /* Comment.Special */
.highlight .gd { color: #A00000 } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #FF0000 } /* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #00A000 } /* Generic.Inserted */
.highlight .go { color: #808080 } /* Generic.Output */
.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #0040D0 } /* Generic.Traceback */
.highlight .kc { color: #AA22FF; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #AA22FF; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #AA22FF; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #AA22FF } /* Keyword.Pseudo */
.highlight .kr { color: #AA22FF; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #00BB00; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #666666 } /* Literal.Number */
.highlight .s { color: #BB4444 } /* Literal.String */
.highlight .na { color: #BB4444 } /* Name.Attribute */
.highlight .nb { color: #AA22FF } /* Name.Builtin */
.highlight .nc { color: #0000FF } /* Name.Class */
.highlight .no { color: #880000 } /* Name.Constant */
.highlight .nd { color: #AA22FF } /* Name.Decorator */
.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #00A000 } /* Name.Function */
.highlight .nl { color: #A0A000 } /* Name.Label */
.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #B8860B } /* Name.Variable */
.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mf { color: #666666 } /* Literal.Number.Float */
.highlight .mh { color: #666666 } /* Literal.Number.Hex */
.highlight .mi { color: #666666 } /* Literal.Number.Integer */
.highlight .mo { color: #666666 } /* Literal.Number.Oct */
.highlight .sb { color: #BB4444 } /* Literal.String.Backtick */
.highlight .sc { color: #BB4444 } /* Literal.String.Char */
.highlight .sd { color: #BB4444; font-style: italic } /* Literal.String.Doc */
.highlight .s2 { color: #BB4444 } /* Literal.String.Double */
.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
.highlight .sh { color: #BB4444 } /* Literal.String.Heredoc */
.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
.highlight .sx { color: #008000 } /* Literal.String.Other */
.highlight .sr { color: #BB6688 } /* Literal.String.Regex */
.highlight .s1 { color: #BB4444 } /* Literal.String.Single */
.highlight .ss { color: #B8860B } /* Literal.String.Symbol */
.highlight .bp { color: #AA22FF } /* Name.Builtin.Pseudo */
.highlight .vc { color: #B8860B } /* Name.Variable.Class */
.highlight .vg { color: #B8860B } /* Name.Variable.Global */
.highlight .vi { color: #B8860B } /* Name.Variable.Instance */
.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */

/*]]>*/
</style>
<script type="text/javascript">
/*<![CDATA[*/
window.onload = function(){asciidoc.footnotes(); asciidoc.toc(4);}
/*]]>*/
</script>
</head>
<body class="article">
<div id="header">
<h1>Work In A Branch</h1>
<div id="toc">
  <div id="toctitle">Table of Contents</div>
  <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
</div>
</div>
<div id="content">
<div id="preamble">
<div class="sectionbody">
<div class="paragraph" id="workinabranch"><p>Working in a branch instead of on <tt>master</tt> I have found to be a productive way
to get things done with minimal interference from other commiters.</p></div>
<div class="paragraph"><p>Working this way lets you track upstream changes locally, update your local
master, and work on multiple subjects simultaneously without any conflicts,
and without being forced to perform a merge/rebase as soon as changes occur
upstream.</p></div>
<div class="listingblock">
<div class="content"><div class="highlight"><pre>  git checkout master
  <span class="c"># create a new branch to work in.</span>
  git checkout -b updates
  <span class="c"># hack on updates.</span>
  <span class="c"># commit changes to update branch</span>
  git commit -m <span class="s2">"Some message"</span>
  <span class="c"># return to master</span>
  git checkout master
  <span class="c"># update master from upstream</span>
  git pull -u -v

  <span class="c"># create another branch from master for a quick-fix</span>
  git checkout -b quickfix
  <span class="c"># hack on quick fix</span>
  <span class="c"># commit change to quick fix branch</span>
  git commit -m <span class="s2">"Emergency Commit set"</span>
  <span class="c"># return to master</span>
  git checkout master
  <span class="c"># check for changes from upstream.</span>
  git pull -u -v
  <span class="c"># Damn, updates happened.</span>
  git checkout quickfix
  <span class="c"># rebase quickfix on top of master</span>
  git rebase -i master
  git checkout master
  <span class="c"># check again for upstream changes</span>
  git pull -u -v
  <span class="c"># Yay, no upstream changes, time to publish the changes in quickfix</span>
  <span class="c"># --ff-only is good to prevent anarchy</span>
  git merge --ff-only quickfix
  git push upstream master
  git branch -d quickfix

  <span class="c"># return to work on updates</span>
  git checkout updates
  <span class="c"># move updates to be after master before continuing to hack</span>
  git rebase -i master
  <span class="c"># more hacking on updates</span>
  git checkout master
  <span class="c"># check for upstream changes</span>
  git pull -u -v
  <span class="c"># Yay, no upstream changes!</span>
  git merge --ff-only updates
  git push upstream master
</pre></div></div></div>
</div>
</div>
</div>
<div id="footnotes"><hr/></div>
<div id="footer">
<div id="footer-text">
Last updated 2012-04-02 04:30:04 NZST
</div>
<div id="footer-badges">
<a href="http://validator.w3.org/check?uri=referer">
  <img style="border:0;width:88px;height:31px" src="http://www.w3.org/Icons/valid-xhtml11-blue" alt="Valid XHTML 1.1" height="31" width="88"/>
</a>
<a href="http://jigsaw.w3.org/css-validator/">
  <img style="border:0;width:88px;height:31px" src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS!"/>
</a>
<a href="http://www.mozilla.org/products/firefox/">
  <img style="border:none; width:110px; height:32px;" src="http://www.spreadfirefox.com/community/images/affiliates/Buttons/110x32/safer.gif" alt="Get Firefox!"/>
</a>
</div>
</div>
</body>
</html>