From a97db2d494d3981d34507f5d04e7b3cc15bdb682 Mon Sep 17 00:00:00 2001 From: Oleg Broytman Date: Tue, 2 Jun 2015 21:07:20 +0300 Subject: [PATCH] Add sub-subsections "Push" and "Tags" --- pep-git.txt | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 70 insertions(+), 1 deletion(-) diff --git a/pep-git.txt b/pep-git.txt index ca2bc0c..2d9b20c 100644 --- a/pep-git.txt +++ b/pep-git.txt @@ -177,7 +177,7 @@ and 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. But it doesn't -update any branch (doesn't move any label). +update any branch (doesn't move any pointer). The second command fetches commits from the named BRANCH in the REMOTE repository that are not in your repository and updates both the local @@ -207,6 +207,75 @@ that non-current branch and then merge:: # rebase instead of merge $ git merge v1 +It is possible to configure git to make it fetch/pull a few branches +or all branches at once, so you can simply run + +:: + + $ git pull origin + +or even + +:: + + $ git pull + +Push +'''' + +Pushing is a bit simpler. There is only one command ``push``. When you +run + +:: + + $ git push origin v1 v2 + +git guesses (knowing upstream remote branches) that you really want + +:: + + $ git push origin v1:v1 v2:v2 + +Git pushes commits to the remote repo and updates remote branches. It +is possible to configure git to make it push a few branches or all +branches at once, so you can simply run + +:: + + $ git push origin + +or even + +:: + + $ git push + +Git refuses to push a branch if it's the current branch in the remote +non-bare repository: git refuses to update remote working directory. +You really should push only to bare repositories. For non-bare +repositories git prefers pull-based workflow. + +Tags +'''' + +Git automatically fetches tags that point to commits being fetched +during fetch/pull. To fetch all tags (and commits they point to) run +``git fetch --tags origin``. To fetch some specific tags fetch them +explicitly:: + + $ git fetch origin tag NAME1 tag NAME2... + +For example:: + + $ git fetch origin tag 1.4.2 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 tag(s) list them explicitly:: + + $ git push origin tag 1.4.2 + $ git push origin v1 v2 tag 2.1.7 + Commit editing and caveats ========================== -- 2.39.2