@end example
Finally, and in some ways most importantly, let's make sure that
-we know what branch we're on. If you're not using LilyDev, add
-this to your @file{~/.bashrc}:
+we can easily see the state of our working copy, without the need
+of typing @code{git status} repeatedly. If you're not using
+LilyDev, add the following lines to your @file{~/.bashrc}:
@verbatim
export PS1="\u@\h \w\$(__git_ps1)$ "
+export GIT_PS1_SHOWDIRTYSTATE=true
+export GIT_PS1_SHOWUNTRACKEDFILES=true
+export GIT_PS1_SHOWUPSTREAM=auto
@end verbatim
+The first line will show the branch we're on. The other lines
+will use some symbols next to the branch name to indicate some
+kind of state. @qq{*} means that there are unstaged changes,
+@qq{+} indicates staged changes; if there are untracked files,
+a @qq{%} will appear. Finally, we can also see if our HEAD is
+behind (@qq{<}) or ahead (@qq{>}) of its upstream, and if they
+have diverged (@qq{<>}) or they are synced (@qq{=}).
+
You may need to install the additional @code{bash-completion}
package, but it is definitely worth it. After installation
you must log out, and then log back in again to enable it.
@example
git fetch
git rebase origin/staging dev/cg~0
-gitk HEAD
+gitk HEAD
@end example
@warning{Do not skip the @command{gitk} step; a quick 5-second
website should use @qq{Web:@tie{}} for English, and
@qq{Web-@var{**}:@tie{}} for other languages.
+@item
+CSS: Commits that change CSS files should use @qq{Web:@tie{}CSS:@tie{}}
+or @qq{Doc:@tie{}CSS:@tie{}} depending on whether they affect the
+website or the documentation/manuals.
+
@item
Changes to a single file are often prefixed with the name of the file
involved.