X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=pep-git.txt;h=8ef719d2ba83a54cb7fe2b72e3731463f87ece50;hb=e9e7f5a63ac0b7c94f1bb3db7ef0d04921683129;hp=51701c9935fcb673cade2b5a89fc8ecfa0548fd4;hpb=bb91e98e10aabd0b8ae3972e10333c68e5ca803d;p=git-wiki.git diff --git a/pep-git.txt b/pep-git.txt index 51701c9..8ef719d 100644 --- a/pep-git.txt +++ b/pep-git.txt @@ -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 +`_. +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