TextMate is a graphical text editor for OS X 10.7+
Revision | 51cb92b527700b583f0ae50c95f30e6769c7cc99 (tree) |
---|---|
Time | 2012-08-23 04:34:30 |
Author | Gerd Knops <gerti@bita...> |
Commiter | Allan Odgaard |
Added GitHub workflow info to README.md
@@ -124,6 +124,44 @@ You can send pull requests via GitHub. Patches should: | ||
124 | 124 | |
125 | 125 | There is both the [textmate-dev][] mailing list and [#textmate][] IRC channel at [freenode.net][] where this project can be discussed. |
126 | 126 | |
127 | +## GitHub Workflow | |
128 | + | |
129 | +Developing patches should follow this workflow: | |
130 | + | |
131 | +### Initial Setup | |
132 | + | |
133 | +1. Fork on GitHub (click Fork button) | |
134 | +2. Clone to computer: `git clone git@github.com:«github account»/textmate.git` | |
135 | +3. cd into your repo: `cd textmate` | |
136 | +4. Set up remote upstream: `git remote add -f upstream git://github.com/textmate/textmate.git` | |
137 | + | |
138 | +### Adding a Feature | |
139 | + | |
140 | +1. Create a branch for the new feature: `git checkout -b my_new_feature` | |
141 | +2. Work on your feature, add and commit as usual | |
142 | + | |
143 | +Creating a branch is not strictly necessary, but it makes it easy to delete your branch when the feature has been merged into upstream, diff your branch with the version that actually ended in upstream, and to submit pull requests for multiple features (branches). | |
144 | + | |
145 | +### Pushing to GitHub | |
146 | + | |
147 | +8. Push branch to GitHub: `git push origin my_new_feature` | |
148 | +9. Issue pull request: Click Pull Request button on GitHub | |
149 | + | |
150 | +### Useful Commands | |
151 | + | |
152 | +If a lot of changes has happened upstream you can replay your local changes on top of these, this is done with `rebase`, e.g.: | |
153 | + | |
154 | + git fetch upstream | |
155 | + git rebase upstream/master | |
156 | + | |
157 | +This will fetch changes and re-apply your commits on top of these. | |
158 | + | |
159 | +This is generally better than merge, as it will give a clear picture of which commits are local to your branch. It will also “prune” any of your local commits if the same changes have been applied upstream. | |
160 | + | |
161 | +You can use `-i` with `rebase` for an “interactive” rebase. This allows you to drop, re-arrange, merge, and reword commits, e.g.: | |
162 | + | |
163 | + git rebase -i upstream/master | |
164 | + | |
127 | 165 | ## Changing a xib File |
128 | 166 | |
129 | 167 | When you change a `xib` file then please look at the diff before you push. If the diff seems to have a lot of changes unrelated to what actually did change, please revert back to `HEAD` and open the pristine `xib` in Xcode and save that (without changing anything). |