When writing collaboratively, there is often a need to make changes and diplay the changes to others over the web. Git provides a way of making changes to text in such a way that no previous changes will be completely deleted, while still presenting a finished product at all times.
In order to simplify the process, Dropbox will be used in place of the regular git push/pull mechanisms. This means all users will be editing the same repo, which makes the whole git process very simple.
In this overview, I will try to give only the minimal set of commands most useful for editing text documents.
~/.gitconfig
[user]
name = Patrick Malsom
email = patrickmalsom@gmail.com
[core]
pager = less -+S
[alias]
clog = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
cdiff = diff --color --color-words
git status
This will show the status of the git repo (ie: if any files need to be committed/added)
Any new files that you wish to include in the repository must be added explicitly when they are created. This following will add file.txt
to the repo
git add file.txt
Simply edit the file as you normally would. There is no need to keep any of the old text in the document, simply delete it and put the corrected text in. The changes to the old text can can be viewed using git functionality (explained later)
git commit -a -m "commit message"
The above command will save your changes to the git repository. Note that you should add your own message in the string at the end, that describes your change (optional).
There is a log of every committed (saved) change that can be easily viewed. One of the aliases defined above is clog (color log). Try using this command now
git clog
This command will show previous commits, similar to the following
* 04fac32 - (HEAD, master) Another commit (1 hour ago) <Patrick Malsom>
* 7882e22 - Some changes (2 hours ago) <Patrick Malsom>
There are a couple things to pay attention to here. The commit message that was used for the commit is shown, along with the date and the author. There is also a number at the front of each log entry (ex:04fac32). This is the hash of the commit and is used to refer to each commit in other commands.
Another alias defined above is cdiff (color diff). This command takes a commit hash and returns the differences between the current state and the state at the previous commit.
git cdiff 7882e22
This command will show the changes between commit 04fac32 and 7882e22
It could be useful to see the file as it was at some previous commit. This is achieved with the show command. Assume for this example that there is a file named file.txt
in the repo.
git show 7882e22:file.txt
This will simply print out file.txt to the terminal.