...
More in-depth documentation can be found on the official home page, which mentions books, videos, and links to other tutorials and references.
...
Creating Commits
- Read the Git for Computer Scientists introduction (skip this if you are already familiar with Git).
- For Linux, Git is available in its own package. Windows users can install msysGit. For MacOS, Git is available as part of Xcode; if you cannot install that, use Git for OSX.
Create a local repository for the "Turing Project":
No Format nopanel true$ mkdir turing $ cd turing $ git init Initialized empty Git repository in ~/turing/.git/
Panel $ mkdir turing $ cd turing $ git init Initialized empty Git repository in ~/turing/.git/
Add some content: copy
notes.txt
to yourturing
directory.No Format nopanel true $ git add notes.txt $ git commit -m "wrote some first notes" [master (root-commit) 2e73b34] wrote some first notes 1 files changed, 5 insertions(+), 0 deletions(-) create mode 100644 notes.txt
- Edit
notes.txt
:- Replace "fixed" with "infinite" in line 1.
- Replace "... (TODO)" with "a finite state machine" in line 4.
Commit the modified content to your local repository:
No Format $ git add notes.txt $ git commit -m "modified tape length, found a controller for tape head" [master 3f28a0e] modified tape length, found a controller for tape head 1 files changed, 2 insertions(+), 2 deletions(-)
After the preceding steps you have two commits in your local repository, each with one file in the index. You have different options for viewing these commits:
No Format |
---|
$ git log commit 3f28a0e473bf3da4aff34a09fed838fe033f3bb5 Author: Miro Spoenemann <msp@informatik.uni-kiel.de> Date: Mon Oct 15 14:30:24 2012 +0200 modified tape length, found a controller for tape head commit 2e73b34ac44480773fc0e52875b7353a087d8c6d Author: Miro Spoenemann <msp@informatik.uni-kiel.de> Date: Mon Oct 15 12:14:06 2012 +0200 wrote some first notes $ git show 3f28a0e commit 3f28a0e473bf3da4aff34a09fed838fe033f3bb5 Author: Miro Spoenemann <msp@informatik.uni-kiel.de> Date: Mon Oct 15 14:30:24 2012 +0200 modified tape length, found a controller for tape head diff --git a/notes.txt b/notes.txt index 4ded2b3..bd422b3 100644 --- a/notes.txt +++ b/notes.txt @@ -1,5 +1,5 @@ - * A tape with fixed length + * A tape with infinite length * Tape head can read or write data * Tape head can move left or right - * The head is controlled by ... (TODO) + * The head is controlled by a finite state machine |
Note that each commit is identified by a looong hash value, but it is possible to use only a prefix when referencing them (if the prefix is not ambiguous): the example above uses 3f28a0e
to identify the second commit.