]> git.phdru.name Git - git-wiki.git/blobdiff - pep-git.txt
Fix: lightweight tags can be pushed too
[git-wiki.git] / pep-git.txt
index 51701c9935fcb673cade2b5a89fc8ecfa0548fd4..8ef719d2ba83a54cb7fe2b72e3731463f87ece50 100644 (file)
@@ -199,9 +199,9 @@ and
     $ git fetch $REMOTE $BRANCH:$BRANCH
 
 The first command fetches commits from the named $BRANCH in the
-$REMOTE repository that are not in your repository and leaves the id
-(the hash) of the head commit in file .git/FETCH_HEAD and updates
-remote-tracking branch.
+$REMOTE repository that are not in your repository, updates
+remote-tracking branch and leaves the id (the hash) of the head commit
+in file .git/FETCH_HEAD.
 
 The second command fetches commits from the named $BRANCH in the
 $REMOTE repository that are not in your repository and updates both
@@ -343,11 +343,11 @@ explicitly::
 
 For example::
 
-    $ git fetch origin tag 1.4.2 tag 2.1.7
+    $ git fetch origin tag 1.4.2
+    $ git fetch origin v1:v1 tag 2.1.7
 
 Git doesn't automatically pushes tags. That allows you to have private
-tags (lightweight tags are also private for a repo, they cannot be
-pushed). To push tags list them explicitly::
+tags. To push tags list them explicitly::
 
     $ git push origin tag 1.4.2
     $ git push origin v1 v2 tag 2.1.7
@@ -391,9 +391,9 @@ Read `how to recover from upstream rebase
 It is in ``git help rebase``.
 
 On the other hand don't be too afraid about commit editing. You can
-safely edit, remove, reorder, combine and split commits that hasn't
+safely edit, remove, reorder, combine and split commits that haven't
 been pushed yet. You can even push commits to your own (backup) repo,
-edit them later and force-push edited commits to replace what has
+edit them later and force-push edited commits to replace what have
 already been pushed. Not a problem until commits are in a public
 or shared repository.
 
@@ -488,10 +488,11 @@ git revert: revert a commit
 ---------------------------
 
 ``git revert`` reverts a commit or commits, that is, it creates a new
-commit or commits that reverts the effects of the given commits. It's
-the only way to undo published commits (``git commit --amend``, ``git
-rebase`` and ``git reset`` change the branch in non-fast-forwardable
-ways so they should only be used for non-pushed commits.)
+commit or commits that revert(s) the effects of the given commits.
+It's the only way to undo published commits (``git commit --amend``,
+``git rebase`` and ``git reset`` change the branch in
+non-fast-forwardable ways so they should only be used for non-pushed
+commits.)
 
 There is a problem with reverting a merge commit. ``git revert`` can
 undo the code created by the merge commit but it cannot undo the fact
@@ -596,9 +597,25 @@ Advanced configuration
 Line endings
 ------------
 
-Git has builtin mechanisms to handle line endings.
+Git has builtin mechanisms to handle line endings between platforms
+with different EOL styles. To allow git to do CRLF conversion assign
+``text`` attribute to files using `.gitattributes
+<https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html>`_.
+For files that have to have specific line ending assign ``eol``
+attribute. For binary files the attribute is, naturally, ``binary``.
 
-TODO: describe crlf configuration and .gitattributes.
+For example::
+
+    $ cat .gitattributes
+    *.py text
+    *.txt text
+    *.png binary
+    /readme.txt eol=CRLF
+
+To check what attributes git uses for files use ``git check-attr``
+command. For example::
+
+$ git check-attr -a -- \*.py
 
 
 Advanced topics