summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorOwen Jacobson <owen.jacobson@grimoire.ca>2013-11-25 15:00:49 -0500
committerOwen Jacobson <owen.jacobson@grimoire.ca>2013-11-25 15:04:42 -0500
commit9f71c98ff9baac31ded3f155c616fbf2d638cbf3 (patch)
tree410bcf4f12ddf5140d8015015b91e5920ebfa682 /README.md
Exported my aliases for easier sharing.
Diffstat (limited to 'README.md')
-rw-r--r--README.md37
1 files changed, 37 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..3429a9f
--- /dev/null
+++ b/README.md
@@ -0,0 +1,37 @@
+# Premises:
+
+* Every project has at least one "canonical" repository. The canonical repo
+ tracks the project's official history. New clones are created by cloning
+ the canonical repo; the aliases below assume that the `origin` remote
+ points to the canonical repo.
+
+* Most development happens on short-lived feature branches, which are merged
+ into the canonical repo's `master` branch when accepted. This merge should
+ be non-fastforward, but the alias suite doesn't care.
+
+* Developers publish _proposed_ changes to their own repositories, not to
+ the canonical repository directly. The aliases below expect the user's
+ personal repo to be associated with a remote named with the user's login
+ name. (It's fine if this is an alias for `origin`, provided you're
+ extremely careful with the `publish` alias.)
+
+* Branches in a developer's personal repository are "unstable" and may be
+ rewritten by the author. (It's up to you to communicate with your team;
+ if you're working with someone on a shared feature branch, using
+ `publish` will lead to obnoxious cleanup work.)
+
+* You have `push.default` set to `simple`. (If your version of `git` doesn't
+ support this option, upgrade. The default behaviour of `git push` is
+ unsupportably bad.)
+
+* You sometimes want to use normal Git commands, too. (Otherwise, why aren't
+ you using `git-flow`, `tig`, or some other workflow frontend?)
+
+# Installation:
+
+ $ git config --global --add include.path '/path/to/aliases.gitconfig'
+
+## Removal:
+
+ $ git config --global --unset include.aliases \
+ '/path/to/aliases.gitconfig'