]> git.phdru.name Git - git-wiki.git/blobdiff - pep-git.txt
Describe git checkout
[git-wiki.git] / pep-git.txt
index 6272b08f8042abdc30a7b49171fa6e100286a869..4cbedf62b90518b76f02adb2565cde2c7395e5df 100644 (file)
@@ -381,7 +381,20 @@ or shared repository.
 Undo
 ====
 
-TODO: describe undo strategies: git reset, git revert, git checkout,
+Whatever you do, don't panic. Almost anything in git can be undone.
+``git checkout``, for example, can be used to restore the content of
+file(s) to that one of a commit. Like this::
+
+    git checkout HEAD~ README
+
+The commands restores the contente of README file to the last but one
+commit in the current branch. By default a commit ID is simple HEAD;
+i.e. ``git checkout README`` restores README to the latest commit.
+
+(Do not use ``git checkout`` to view a content of a file in a commit,
+use ``git cat-file -p``; e.g. ``git cat-file -p HEAD~:path/to/README``).
+
+TODO: describe undo strategies: git reset, git revert,
 git reflog. "Commit early, commit often".
 
 How to undo a merge
@@ -427,7 +440,7 @@ conflicts at once you can merge the topic branch to the mainline from
 time to time and switch back to the topic branch to continue working
 on it. The entire workflow would be something like::
 
-    $ git checkout -b issue-42  # create and switch to a new branch
+    $ git checkout -b issue-42  # create a new issue branch and switch to it
         ...edit/test/commit...
     $ git checkout v2
     $ git pull --rebase origin v2  # update v2 from the upstream
@@ -438,9 +451,9 @@ on it. The entire workflow would be something like::
 When the topic branch is deleted only the label is removed, commits
 are stayed in the database, they are now merged into v2::
 
-    o--o--o--o--o--M--< v2 - it is the mainline branch
+    o--o--o--o--o--M--< v2 - the mainline branch
         \         /
-         --*--*--*         - it is the topic branch, now unnamed
+         --*--*--*         - the topic branch, now unnamed
 
 The topic branch is deleted to avoid cluttering branch namespace with
 small topic branches. Information on what issue was fixed or what
@@ -499,7 +512,10 @@ Tips and tricks
 
 TODO: sticky options; example: git grep -O.
 
+TODO: tricky options; example: git log -p3.
+
 TODO: bash/zsh completion, bash/zsh prompt.
+https://git.kernel.org/cgit/git/git.git/tree/contrib/completion
 
 
 git on server
@@ -507,6 +523,11 @@ git on server
 
 TODO: anonymous access; git over ssh; gitolite; gitweb; cgit; gitlab.
 
+http://gitolite.com/gitolite/index.html
+
+https://git.kernel.org/cgit/git/git.git/tree/gitweb
+
+http://git.zx2c4.com/cgit/
 
 From Mercurial to git
 =====================