git.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Tue, 07 Feb 2023 00:53:39 +0200
changeset 2555 70383fa8bf12
parent 2542 79885bc317d2
permissions -rw-r--r--
About copying SSH pubkey.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     1
.. -*- coding: utf-8; -*-
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     2
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     3
======
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     4
 Git.
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     5
======
1032
4decc3e00bb6 Fix coding and contents.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1002
diff changeset
     6
.. contents::
1905
fba288d59662 Include only local subsections into TOC. This prevent duplication of
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1815
diff changeset
     7
   :local:
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     8
2101
325b195030bd Simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2085
diff changeset
     9
Setting up git
325b195030bd Simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2085
diff changeset
    10
==============
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    11
2101
325b195030bd Simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2085
diff changeset
    12
Debian::
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    13
2081
0d9703b4a428 Remove outdated data. Fix formatting.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1932
diff changeset
    14
  $ sudo apt-get install git
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    15
2101
325b195030bd Simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2085
diff changeset
    16
Cygwin::
325b195030bd Simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2085
diff changeset
    17
325b195030bd Simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2085
diff changeset
    18
  $ setup.exe -p git
325b195030bd Simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2085
diff changeset
    19
  $ apt-cyg install git
325b195030bd Simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2085
diff changeset
    20
325b195030bd Simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2085
diff changeset
    21
After install set up some options::
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    22
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    23
  $ git config --global user.name "Oleksandr Gavenko"
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    24
  $ git config --global user.mail "gavenkoa@gmail.com"
2101
325b195030bd Simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2085
diff changeset
    25
325b195030bd Simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2085
diff changeset
    26
After that you should have::
325b195030bd Simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2085
diff changeset
    27
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    28
  $ cat ~/.gitconfig
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    29
  [user]
2101
325b195030bd Simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2085
diff changeset
    30
  name = Oleksandr Gavenko
325b195030bd Simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2085
diff changeset
    31
  mail = gavenkoa@gmail.com
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    32
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    33
git over proxy.
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    34
===============
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    35
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    36
Only http:// protocol support proxy (not git://)::
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    37
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    38
  $ export http_proxy="http://username:password@proxy:port/"
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    39
  $ git clone http://github.com/$user/$proj.git $proj
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    40
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    41
You can store proxy settings under repository local config file::
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    42
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    43
  $ git config http.proxy http://$user:$passwd@$ip:$port
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    44
2081
0d9703b4a428 Remove outdated data. Fix formatting.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1932
diff changeset
    45
Start project with git
0d9703b4a428 Remove outdated data. Fix formatting.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1932
diff changeset
    46
======================
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    47
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    48
Setup proj space on fs::
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    49
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    50
  $ mkdir proj
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    51
  $ cd proj
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    52
  $ git init
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    53
  Initialized empty Git repository in /home/user/tmp/proj/.git/
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    54
  $ ls -a
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    55
  . .. .git
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    56
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    57
Add file, make changes, commit all::
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    58
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    59
  $ emacs Makefile
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    60
  ... C-x C-c
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    61
  $ emacs app.c
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    62
  ... C-x C-c
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    63
  $ git add Makefile app.c
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    64
  $ git status
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    65
  # On branch master
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    66
  #
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    67
  # Initial commit
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    68
  #
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    69
  # Changes to be committed:
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    70
  #   (use "git rm --cached <file>..." to unstage)
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    71
  #
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    72
  #       new file: Makefile
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    73
  #       new file: app.c
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    74
  #
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    75
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    76
or just::
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    77
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    78
  $ git add .
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    79
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    80
Commit newlly added file::
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    81
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    82
  $ git commit
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    83
  ... Write message log ...
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    84
  Created initial commit 2169263: My first commit massage.
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    85
   1 files changed, 4 insertions(+), 0 deletions(-)
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    86
   create mode 100644 app.c
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    87
2209
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
    88
Show difference
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
    89
===============
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
    90
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
    91
Show difference between index/stage and working tree::
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
    92
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
    93
  $ git diff
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
    94
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
    95
Show difference between ``HEAD`` and index (what is going to be commited)::
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
    96
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
    97
  $ git diff --cached
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
    98
  $ git diff --staged
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
    99
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
   100
.. note:: ``--cached`` and ``--staged`` are synonyms.
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
   101
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
   102
Show difference beetween ``HEAD`` and working tree (what is commited after ``git commit -a``)::
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
   103
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
   104
  $ git diff HEAD
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
   105
  $ git diff HEAD -- $path
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
   106
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
   107
Show difference in changeset::
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
   108
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
   109
  $ git show $hash
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
   110
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
   111
Show difference between revisions::
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
   112
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
   113
  $ git diff $rev1..$rev2
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
   114
  $ git diff ORIG_HEAD..HEAD
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
   115
2414
aebcb023e71a Show differences to each parent for merge.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2409
diff changeset
   116
For merge first parent is a tip where merge is performed, second is a tip of merged branch.
aebcb023e71a Show differences to each parent for merge.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2409
diff changeset
   117
aebcb023e71a Show differences to each parent for merge.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2409
diff changeset
   118
.. note:: ``git show`` shows "combined diff": only files which were modified from all parents.
aebcb023e71a Show differences to each parent for merge.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2409
diff changeset
   119
          ``git show --first-parent`` can be used to show how branch was chaged after merge.
aebcb023e71a Show differences to each parent for merge.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2409
diff changeset
   120
aebcb023e71a Show differences to each parent for merge.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2409
diff changeset
   121
Show differences to each parent for merge::
aebcb023e71a Show differences to each parent for merge.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2409
diff changeset
   122
aebcb023e71a Show differences to each parent for merge.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2409
diff changeset
   123
  $ git show -m $hash
aebcb023e71a Show differences to each parent for merge.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2409
diff changeset
   124
2209
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
   125
https://stackoverflow.com/questions/3293607/difference-between-git-head-and-the-current-project-state
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
   126
  Difference between git HEAD and the current project state?
2414
aebcb023e71a Show differences to each parent for merge.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2409
diff changeset
   127
https://stackoverflow.com/questions/40986518/git-show-of-a-merge-commit
aebcb023e71a Show differences to each parent for merge.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2409
diff changeset
   128
  git show of a merge commit.
2209
6faf149a4f4c Show difference.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2195
diff changeset
   129
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   130
Undo tracking added file.
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   131
=========================
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   132
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   133
You do::
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   134
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   135
  $ git add badfile
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   136
  $ git status
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   137
  # On branch master
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   138
  # Changes to be committed:
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   139
  #   (use "git reset HEAD <file>..." to unstage)
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   140
  #
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   141
  #       new file:   badfile
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   142
  #
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   143
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   144
To stop tracking badfile do::
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   145
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   146
  $ git rm --cached badfile
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   147
  $ git status
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   148
  # On branch master
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   149
  # Untracked files:
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   150
  #   (use "git add <file>..." to include in what will be committed)
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   151
  #
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   152
  #       file
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   153
  nothing added to commit but untracked files present (use "git add" to track)
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   154
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   155
or::
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   156
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   157
  $ git reset badfile
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   158
2082
7f6ce6b18a0c Remove unnecessary details.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2081
diff changeset
   159
Committing changes
7f6ce6b18a0c Remove unnecessary details.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2081
diff changeset
   160
==================
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   161
2082
7f6ce6b18a0c Remove unnecessary details.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2081
diff changeset
   162
Individual file::
7f6ce6b18a0c Remove unnecessary details.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2081
diff changeset
   163
7f6ce6b18a0c Remove unnecessary details.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2081
diff changeset
   164
  $ $EDITOR Makefile
7f6ce6b18a0c Remove unnecessary details.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2081
diff changeset
   165
  $ git add Makefile
2152
a48ba30d5b20 Fixed example for done changes review.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2126
diff changeset
   166
  $ git diff --cached
2082
7f6ce6b18a0c Remove unnecessary details.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2081
diff changeset
   167
  $ git commit -m "..."
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   168
2082
7f6ce6b18a0c Remove unnecessary details.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2081
diff changeset
   169
Commit all changed and previously manages files::
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   170
2082
7f6ce6b18a0c Remove unnecessary details.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2081
diff changeset
   171
  $ git commit -a -m "...."
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   172
2084
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   173
Managing branches
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   174
=================
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   175
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   176
Print current branch::
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   177
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   178
  $ git branch
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   179
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   180
List all known branches::
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   181
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   182
  $ git branch -a
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   183
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   184
List all known remote branches::
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   185
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   186
  $ git branch -r
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   187
2409
6163ed9ff6de Create local branch from remote with the same name.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2403
diff changeset
   188
List all remote branches directly from remote::
2084
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   189
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   190
  $ git ls-remote
2190
f589976b8876 Reindent RST code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2179
diff changeset
   191
  $ git ls-remote origin
f589976b8876 Reindent RST code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2179
diff changeset
   192
f589976b8876 Reindent RST code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2179
diff changeset
   193
List registered remotes::
f589976b8876 Reindent RST code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2179
diff changeset
   194
2409
6163ed9ff6de Create local branch from remote with the same name.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2403
diff changeset
   195
  $ git remote -v
6163ed9ff6de Create local branch from remote with the same name.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2403
diff changeset
   196
  $ git remote
2190
f589976b8876 Reindent RST code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2179
diff changeset
   197
  $ git remote show
2084
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   198
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   199
List remote branches from ``$REMOTE`` remote::
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   200
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   201
  $ git ls-remote --heads $REMOTE
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   202
  $ git remote show $REMOTE
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   203
2190
f589976b8876 Reindent RST code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2179
diff changeset
   204
Special case of above is ``origin`` remote, which is default remote::
f589976b8876 Reindent RST code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2179
diff changeset
   205
f589976b8876 Reindent RST code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2179
diff changeset
   206
  $ git remote show origin
f589976b8876 Reindent RST code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2179
diff changeset
   207
  $ git ls-remote --heads origin
f589976b8876 Reindent RST code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2179
diff changeset
   208
2084
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   209
.. note::
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   210
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   211
   Look to ``[remote "..."]`` in ``~/.git/config`` to find out names of possible
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   212
   remotes. Alternatively get list from::
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   213
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   214
     $ git remote show
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   215
2190
f589976b8876 Reindent RST code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2179
diff changeset
   216
Getting branches pointers from default (``origin``) remote (without merging
f589976b8876 Reindent RST code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2179
diff changeset
   217
tracking branch)::
2084
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   218
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   219
  $ git fetch
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   220
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   221
Getting branches pointers from ``$REMOTE`` remote::
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   222
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   223
  $ git fetch $REMOTE
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   224
2190
f589976b8876 Reindent RST code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2179
diff changeset
   225
To get updated with default remote changes::
f589976b8876 Reindent RST code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2179
diff changeset
   226
f589976b8876 Reindent RST code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2179
diff changeset
   227
  $ git pull
f589976b8876 Reindent RST code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2179
diff changeset
   228
f589976b8876 Reindent RST code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2179
diff changeset
   229
or specify concrete remote::
f589976b8876 Reindent RST code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2179
diff changeset
   230
f589976b8876 Reindent RST code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2179
diff changeset
   231
  $ git pull $REMOTE
f589976b8876 Reindent RST code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2179
diff changeset
   232
  $ git pull origin
f589976b8876 Reindent RST code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2179
diff changeset
   233
2360
5179f42afc84 Delete remote branch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2292
diff changeset
   234
Delete local branch (``-D`` is unsafe i.e. changes aren't pushed to any remote)::
2214
f7b3d90697ab Delete remote branch remotely.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2211
diff changeset
   235
f7b3d90697ab Delete remote branch remotely.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2211
diff changeset
   236
  $ git branch -d $NAME
2360
5179f42afc84 Delete remote branch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2292
diff changeset
   237
  $ git branch -D $NAME
2214
f7b3d90697ab Delete remote branch remotely.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2211
diff changeset
   238
2253
6bb039213d89 Fixed grammar.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2251
diff changeset
   239
Delete remote branch::
2214
f7b3d90697ab Delete remote branch remotely.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2211
diff changeset
   240
2360
5179f42afc84 Delete remote branch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2292
diff changeset
   241
  $ git push $REMOTE --delete $BRANCH_NAME
5179f42afc84 Delete remote branch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2292
diff changeset
   242
  $ git push $REMOTE -d $BRANCH_NAME
5179f42afc84 Delete remote branch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2292
diff changeset
   243
  $ git push origin -d $BRANCH_NAME
2214
f7b3d90697ab Delete remote branch remotely.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2211
diff changeset
   244
2190
f589976b8876 Reindent RST code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2179
diff changeset
   245
To locally remove pointers to deleted remotely branches::
f589976b8876 Reindent RST code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2179
diff changeset
   246
f589976b8876 Reindent RST code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2179
diff changeset
   247
  $ git remote update --prune
f589976b8876 Reindent RST code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2179
diff changeset
   248
  $ git remote update --prune origin
f589976b8876 Reindent RST code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2179
diff changeset
   249
2084
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   250
.. note::
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   251
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   252
   Only curtain branches fetched by default::
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   253
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   254
     [remote "origin"]
2123
f98c2b2e6c07 View unpublished git commits- added links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2122
diff changeset
   255
     url = ...
f98c2b2e6c07 View unpublished git commits- added links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2122
diff changeset
   256
     fetch = +refs/heads/*:refs/remotes/origin/*
2084
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   257
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   258
   Edit ``fetch`` value to change defaults.
376824d203c2 Managing branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2082
diff changeset
   259
2171
2ded7f1cf6c0 Move branch pointer to arbitrary hash.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2153
diff changeset
   260
Move branch pointer to arbitrary hash::
2ded7f1cf6c0 Move branch pointer to arbitrary hash.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2153
diff changeset
   261
2ded7f1cf6c0 Move branch pointer to arbitrary hash.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2153
diff changeset
   262
  $ git branch -f $NAME $HASH
2ded7f1cf6c0 Move branch pointer to arbitrary hash.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2153
diff changeset
   263
2409
6163ed9ff6de Create local branch from remote with the same name.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2403
diff changeset
   264
Create local branch from remote with the same name::
6163ed9ff6de Create local branch from remote with the same name.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2403
diff changeset
   265
6163ed9ff6de Create local branch from remote with the same name.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2403
diff changeset
   266
  $ git checkout --track origin/fix
6163ed9ff6de Create local branch from remote with the same name.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2403
diff changeset
   267
6163ed9ff6de Create local branch from remote with the same name.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2403
diff changeset
   268
Create local branch from remote with an alternative name::
6163ed9ff6de Create local branch from remote with the same name.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2403
diff changeset
   269
6163ed9ff6de Create local branch from remote with the same name.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2403
diff changeset
   270
  $ git checkout -b myfix origin/fix
6163ed9ff6de Create local branch from remote with the same name.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2403
diff changeset
   271
2085
652aca73fc06 Detect if remote repository have new changes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2084
diff changeset
   272
git analog of 'hg incoming'
652aca73fc06 Detect if remote repository have new changes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2084
diff changeset
   273
===========================
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   274
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   275
git does not directly support such feature. You can emulate it by::
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   276
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   277
  $ git fetch
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   278
  $ git log master..origin/master   # or just '..origin/master'
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   279
2085
652aca73fc06 Detect if remote repository have new changes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2084
diff changeset
   280
By previous commands you grab changes from remote server! You can apply them by
652aca73fc06 Detect if remote repository have new changes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2084
diff changeset
   281
``pull`` or ``merge`` or ``rebase`` command::
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   282
2085
652aca73fc06 Detect if remote repository have new changes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2084
diff changeset
   283
  $ git pull
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   284
  $ git merge
2085
652aca73fc06 Detect if remote repository have new changes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2084
diff changeset
   285
  TODO
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   286
2085
652aca73fc06 Detect if remote repository have new changes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2084
diff changeset
   287
To detect if remote repository have new changes::
652aca73fc06 Detect if remote repository have new changes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2084
diff changeset
   288
652aca73fc06 Detect if remote repository have new changes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2084
diff changeset
   289
  $ git ls-remote
652aca73fc06 Detect if remote repository have new changes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2084
diff changeset
   290
  $ git ls-remote $upstream
652aca73fc06 Detect if remote repository have new changes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2084
diff changeset
   291
2126
09e2e50d02aa View git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2124
diff changeset
   292
View git commits
09e2e50d02aa View git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2124
diff changeset
   293
================
09e2e50d02aa View git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2124
diff changeset
   294
09e2e50d02aa View git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2124
diff changeset
   295
Review specific commit with::
09e2e50d02aa View git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2124
diff changeset
   296
09e2e50d02aa View git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2124
diff changeset
   297
  $ git show $REV
09e2e50d02aa View git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2124
diff changeset
   298
  $ git diff $REV^ $REV
09e2e50d02aa View git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2124
diff changeset
   299
2292
cd4554e0150e Review history of merges only.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2262
diff changeset
   300
Review merge commit related to specific parent::
cd4554e0150e Review history of merges only.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2262
diff changeset
   301
cd4554e0150e Review history of merges only.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2262
diff changeset
   302
  $ git diff $REV^1 $REV
cd4554e0150e Review history of merges only.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2262
diff changeset
   303
  $ git diff $REV^2 $REV
cd4554e0150e Review history of merges only.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2262
diff changeset
   304
cd4554e0150e Review history of merges only.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2262
diff changeset
   305
  $ git diff HEAD^1 HEAD
cd4554e0150e Review history of merges only.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2262
diff changeset
   306
  $ git diff HEAD^2 HEAD
cd4554e0150e Review history of merges only.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2262
diff changeset
   307
cd4554e0150e Review history of merges only.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2262
diff changeset
   308
.. note:: ``^1`` is the first parent, ``^2`` is the second parent, and so on.
cd4554e0150e Review history of merges only.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2262
diff changeset
   309
cd4554e0150e Review history of merges only.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2262
diff changeset
   310
``git show`` command for merge commits shows only changes from conflicting hunks. It is equivalent
cd4554e0150e Review history of merges only.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2262
diff changeset
   311
to (lines that changed as part of the conflict resolution)::
cd4554e0150e Review history of merges only.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2262
diff changeset
   312
cd4554e0150e Review history of merges only.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2262
diff changeset
   313
  $ git diff-tree --cc $REV
cd4554e0150e Review history of merges only.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2262
diff changeset
   314
2126
09e2e50d02aa View git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2124
diff changeset
   315
Review difference between commits::
09e2e50d02aa View git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2124
diff changeset
   316
09e2e50d02aa View git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2124
diff changeset
   317
  $ git $REV1 $REV2
2153
e88e36e73ebc Review difference between commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2152
diff changeset
   318
  $ git $REV1..$REV2
e88e36e73ebc Review difference between commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2152
diff changeset
   319
  $ git $REV1..$REV2 -- $DIR_OR_FILE
2126
09e2e50d02aa View git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2124
diff changeset
   320
09e2e50d02aa View git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2124
diff changeset
   321
Review history with diffs::
09e2e50d02aa View git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2124
diff changeset
   322
09e2e50d02aa View git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2124
diff changeset
   323
  $ git log -p
09e2e50d02aa View git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2124
diff changeset
   324
  $ git log -p $FROM_REV
09e2e50d02aa View git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2124
diff changeset
   325
2292
cd4554e0150e Review history of merges only.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2262
diff changeset
   326
Review history of merges only::
cd4554e0150e Review history of merges only.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2262
diff changeset
   327
cd4554e0150e Review history of merges only.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2262
diff changeset
   328
  $ git log --min-parents=2 -p --cc
cd4554e0150e Review history of merges only.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2262
diff changeset
   329
2122
24fbab64cf91 View unpublished git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2116
diff changeset
   330
View unpublished git commits / analog of git 'hg outgoing'
24fbab64cf91 View unpublished git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2116
diff changeset
   331
==========================================================
24fbab64cf91 View unpublished git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2116
diff changeset
   332
24fbab64cf91 View unpublished git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2116
diff changeset
   333
``git`` does not directly support such feature. Recently ``hg`` start tracking
24fbab64cf91 View unpublished git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2116
diff changeset
   334
changes that pushed to any other repositories (called as ``public`` versus
24fbab64cf91 View unpublished git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2116
diff changeset
   335
``draft`` which is not yet published anywhere). You can emulate it by::
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   336
2122
24fbab64cf91 View unpublished git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2116
diff changeset
   337
  $ git fetch origin
24fbab64cf91 View unpublished git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2116
diff changeset
   338
  $ git log origin/master..master
24fbab64cf91 View unpublished git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2116
diff changeset
   339
  $ git log origin/master..
24fbab64cf91 View unpublished git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2116
diff changeset
   340
  $ git log origin/master..HEAD
24fbab64cf91 View unpublished git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2116
diff changeset
   341
  $ git log @{u}..
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   342
2122
24fbab64cf91 View unpublished git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2116
diff changeset
   343
  $ git diff origin/master..
24fbab64cf91 View unpublished git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2116
diff changeset
   344
24fbab64cf91 View unpublished git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2116
diff changeset
   345
Verbose syntax::
24fbab64cf91 View unpublished git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2116
diff changeset
   346
24fbab64cf91 View unpublished git commits.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2116
diff changeset
   347
  $ git log --branches --not --remotes
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   348
2123
f98c2b2e6c07 View unpublished git commits- added links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2122
diff changeset
   349
http://stackoverflow.com/questions/2016901/viewing-unpushed-git-commits
f98c2b2e6c07 View unpublished git commits- added links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2122
diff changeset
   350
  Viewing unpushed Git commits.
f98c2b2e6c07 View unpublished git commits- added links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2122
diff changeset
   351
http://stackoverflow.com/questions/3636914/how-can-i-see-what-i-am-about-to-push-with-git
f98c2b2e6c07 View unpublished git commits- added links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2122
diff changeset
   352
  How can I see what I am about to push with git?
f98c2b2e6c07 View unpublished git commits- added links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2122
diff changeset
   353
2102
ce5d8887b874 Making local branch tracking remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2101
diff changeset
   354
git analog of 'hg glog'
ce5d8887b874 Making local branch tracking remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2101
diff changeset
   355
=======================
1650
a48c3c61d0f9 git analog of 'hg glog'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1641
diff changeset
   356
::
a48c3c61d0f9 git analog of 'hg glog'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1641
diff changeset
   357
a48c3c61d0f9 git analog of 'hg glog'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1641
diff changeset
   358
  $ git log --all --graph
2102
ce5d8887b874 Making local branch tracking remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2101
diff changeset
   359
  $ git log --all --graph --oneline
ce5d8887b874 Making local branch tracking remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2101
diff changeset
   360
  $ git log --all --graph --oneline --decorate
1650
a48c3c61d0f9 git analog of 'hg glog'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1641
diff changeset
   361
a48c3c61d0f9 git analog of 'hg glog'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1641
diff changeset
   362
Add alias::
a48c3c61d0f9 git analog of 'hg glog'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1641
diff changeset
   363
a48c3c61d0f9 git analog of 'hg glog'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1641
diff changeset
   364
  [alias]
a48c3c61d0f9 git analog of 'hg glog'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1641
diff changeset
   365
  glog = log --all --graph
a48c3c61d0f9 git analog of 'hg glog'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1641
diff changeset
   366
2116
f92d8941f4a8 Git amend.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2115
diff changeset
   367
Git analog of 'hg rollback'
f92d8941f4a8 Git amend.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2115
diff changeset
   368
===========================
1651
c77807176b36 Git analog of 'hg rollback'
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1650
diff changeset
   369
c77807176b36 Git analog of 'hg rollback'
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1650
diff changeset
   370
To edit commit message of last commit::
c77807176b36 Git analog of 'hg rollback'
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1650
diff changeset
   371
c77807176b36 Git analog of 'hg rollback'
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1650
diff changeset
   372
  $ git commit --amend -m "$MSG"
c77807176b36 Git analog of 'hg rollback'
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1650
diff changeset
   373
2116
f92d8941f4a8 Git amend.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2115
diff changeset
   374
To integrate changes into last commit (``-a`` to avoid antecedent ``git add ...``,
f92d8941f4a8 Git amend.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2115
diff changeset
   375
``--no-edit`` if you don't like to change commit message, otherwise external
f92d8941f4a8 Git amend.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2115
diff changeset
   376
editor is opened)::
f92d8941f4a8 Git amend.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2115
diff changeset
   377
f92d8941f4a8 Git amend.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2115
diff changeset
   378
  $ git commit -a --amend --no-edit
f92d8941f4a8 Git amend.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2115
diff changeset
   379
1651
c77807176b36 Git analog of 'hg rollback'
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1650
diff changeset
   380
To edit messages of old commits starting from ``$REV``::
c77807176b36 Git analog of 'hg rollback'
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1650
diff changeset
   381
c77807176b36 Git analog of 'hg rollback'
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1650
diff changeset
   382
  $ git rebase -i $REV
c77807176b36 Git analog of 'hg rollback'
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1650
diff changeset
   383
2124
3afe57643e44 undo latest commit
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2123
diff changeset
   384
To undo latest commit::
3afe57643e44 undo latest commit
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2123
diff changeset
   385
3afe57643e44 undo latest commit
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2123
diff changeset
   386
  $ git reset HEAD~1
3afe57643e44 undo latest commit
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2123
diff changeset
   387
2102
ce5d8887b874 Making local branch tracking remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2101
diff changeset
   388
Git analog of 'hg root'
ce5d8887b874 Making local branch tracking remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2101
diff changeset
   389
=======================
1771
b2d4be61da16 Git analog of 'hg root'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1714
diff changeset
   390
::
b2d4be61da16 Git analog of 'hg root'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1714
diff changeset
   391
b2d4be61da16 Git analog of 'hg root'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1714
diff changeset
   392
  $ git rev-parse --show-toplevel
b2d4be61da16 Git analog of 'hg root'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1714
diff changeset
   393
2102
ce5d8887b874 Making local branch tracking remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2101
diff changeset
   394
Making local branch tracking remote
ce5d8887b874 Making local branch tracking remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2101
diff changeset
   395
===================================
ce5d8887b874 Making local branch tracking remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2101
diff changeset
   396
::
ce5d8887b874 Making local branch tracking remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2101
diff changeset
   397
ce5d8887b874 Making local branch tracking remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2101
diff changeset
   398
  $ git branch -u upstream/foo
ce5d8887b874 Making local branch tracking remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2101
diff changeset
   399
  $ git branch -u upstream/foo foo
ce5d8887b874 Making local branch tracking remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2101
diff changeset
   400
ce5d8887b874 Making local branch tracking remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2101
diff changeset
   401
  $ git branch --set-upstream-to=upstream/foo
ce5d8887b874 Making local branch tracking remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2101
diff changeset
   402
  $ git branch --set-upstream-to=upstream/foo foo
ce5d8887b874 Making local branch tracking remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2101
diff changeset
   403
ce5d8887b874 Making local branch tracking remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2101
diff changeset
   404
Showing what and how local branches are tracked::
ce5d8887b874 Making local branch tracking remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2101
diff changeset
   405
ce5d8887b874 Making local branch tracking remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2101
diff changeset
   406
  $ git branch -vv
ce5d8887b874 Making local branch tracking remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2101
diff changeset
   407
  $ cat .git/gitconfig
ce5d8887b874 Making local branch tracking remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2101
diff changeset
   408
ce5d8887b874 Making local branch tracking remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2101
diff changeset
   409
Showing what remote branches tracked::
ce5d8887b874 Making local branch tracking remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2101
diff changeset
   410
ce5d8887b874 Making local branch tracking remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2101
diff changeset
   411
  $ git remote show $remote
ce5d8887b874 Making local branch tracking remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2101
diff changeset
   412
2115
0263a79eeb3b Undo mistaken rebase.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2102
diff changeset
   413
Undo mistaken rebase
0263a79eeb3b Undo mistaken rebase.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2102
diff changeset
   414
====================
0263a79eeb3b Undo mistaken rebase.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2102
diff changeset
   415
0263a79eeb3b Undo mistaken rebase.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2102
diff changeset
   416
If there are no any ``reset``, ``rebase`` or ``merge`` afterwards the easiest
0263a79eeb3b Undo mistaken rebase.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2102
diff changeset
   417
way to recode to pre-rebase state is one of::
0263a79eeb3b Undo mistaken rebase.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2102
diff changeset
   418
0263a79eeb3b Undo mistaken rebase.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2102
diff changeset
   419
  $ git rebase --abort
0263a79eeb3b Undo mistaken rebase.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2102
diff changeset
   420
  $ git reset --hard ORIG_HEAD
0263a79eeb3b Undo mistaken rebase.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2102
diff changeset
   421
2172
850d2d84e4c8 Undo mistaken rebase.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2171
diff changeset
   422
Otherwise look to::
850d2d84e4c8 Undo mistaken rebase.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2171
diff changeset
   423
850d2d84e4c8 Undo mistaken rebase.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2171
diff changeset
   424
  $ git reflog
850d2d84e4c8 Undo mistaken rebase.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2171
diff changeset
   425
850d2d84e4c8 Undo mistaken rebase.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2171
diff changeset
   426
and reset to necessary head::
850d2d84e4c8 Undo mistaken rebase.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2171
diff changeset
   427
850d2d84e4c8 Undo mistaken rebase.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2171
diff changeset
   428
  $ git reset --hard "HEAD@{...}"
850d2d84e4c8 Undo mistaken rebase.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2171
diff changeset
   429
2173
69aed373ceb9 Undoing git rebase.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2172
diff changeset
   430
https://stackoverflow.com/questions/134882/undoing-a-git-rebase
69aed373ceb9 Undoing git rebase.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2172
diff changeset
   431
  Undoing git rebase.
69aed373ceb9 Undoing git rebase.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2172
diff changeset
   432
2179
178897af315a Undo reset --hard.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2176
diff changeset
   433
Undo reset --hard
178897af315a Undo reset --hard.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2176
diff changeset
   434
=================
178897af315a Undo reset --hard.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2176
diff changeset
   435
178897af315a Undo reset --hard.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2176
diff changeset
   436
``git reset --hard`` is destructive command without backup data.
178897af315a Undo reset --hard.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2176
diff changeset
   437
178897af315a Undo reset --hard.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2176
diff changeset
   438
You may find your previously added data in Git garbage::
178897af315a Undo reset --hard.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2176
diff changeset
   439
178897af315a Undo reset --hard.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2176
diff changeset
   440
  $ git fsck --lost-found
178897af315a Undo reset --hard.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2176
diff changeset
   441
178897af315a Undo reset --hard.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2176
diff changeset
   442
look to files inside ``.git/lost-found`` directory.
178897af315a Undo reset --hard.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2176
diff changeset
   443
178897af315a Undo reset --hard.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2176
diff changeset
   444
Reviewing ``git reflog`` also may help.
178897af315a Undo reset --hard.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2176
diff changeset
   445
178897af315a Undo reset --hard.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2176
diff changeset
   446
* https://stackoverflow.com/questions/5788037/recover-from-git-reset-hard
178897af315a Undo reset --hard.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2176
diff changeset
   447
* https://stackoverflow.com/questions/14251194/how-to-recover-after-i-execute-git-reset-hard-head
178897af315a Undo reset --hard.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2176
diff changeset
   448
2232
ac7f6d8bea28 Undo mistaken push.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2214
diff changeset
   449
Undo mistaken push
ac7f6d8bea28 Undo mistaken push.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2214
diff changeset
   450
==================
ac7f6d8bea28 Undo mistaken push.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2214
diff changeset
   451
::
ac7f6d8bea28 Undo mistaken push.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2214
diff changeset
   452
ac7f6d8bea28 Undo mistaken push.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2214
diff changeset
   453
  $ git reset HEAD^
ac7f6d8bea28 Undo mistaken push.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2214
diff changeset
   454
  $ git push --force
ac7f6d8bea28 Undo mistaken push.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2214
diff changeset
   455
ac7f6d8bea28 Undo mistaken push.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2214
diff changeset
   456
Alternative commands may look like::
ac7f6d8bea28 Undo mistaken push.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2214
diff changeset
   457
ac7f6d8bea28 Undo mistaken push.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2214
diff changeset
   458
  $ git reset --hard $HASH
ac7f6d8bea28 Undo mistaken push.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2214
diff changeset
   459
  $ git push -u origin master --force
ac7f6d8bea28 Undo mistaken push.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2214
diff changeset
   460
2233
d0c386e6f039 Undo mistaken push.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2232
diff changeset
   461
You can delete remote branch with syntax of appended colon before branch name::
d0c386e6f039 Undo mistaken push.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2232
diff changeset
   462
d0c386e6f039 Undo mistaken push.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2232
diff changeset
   463
  $ git reset HEAD^
d0c386e6f039 Undo mistaken push.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2232
diff changeset
   464
  $ git push origin :$NAME
d0c386e6f039 Undo mistaken push.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2232
diff changeset
   465
  $ git push origin $NAME
d0c386e6f039 Undo mistaken push.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2232
diff changeset
   466
2175
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   467
Git bisect
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   468
==========
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   469
2176
40c43e30c7fa Git bisect term.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2175
diff changeset
   470
``bad`` changes should be later in graph history then ``good`` ones. To use
40c43e30c7fa Git bisect term.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2175
diff changeset
   471
alternative names::
40c43e30c7fa Git bisect term.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2175
diff changeset
   472
40c43e30c7fa Git bisect term.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2175
diff changeset
   473
  $ git start --term-old=... --term-new=...
2175
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   474
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   475
Start bisecting with::
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   476
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   477
  $ git bisect start
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   478
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   479
Mark good and bad revisions::
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   480
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   481
  $ git co vBAD
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   482
  $ make test
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   483
  $ git bisect bad
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   484
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   485
  $ git co vGOOD
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   486
  $ make test
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   487
  $ git bisect good
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   488
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   489
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   490
If build/test failed to complete use::
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   491
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   492
  $ git bisect skip
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   493
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   494
To restore mistakenly marked revisions::
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   495
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   496
  $ git bisect log >$LOG
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   497
  $ git bisect reset
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   498
  $ $EDITOR $LOG
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   499
  $ git bisect replay $LOG
3977f49ae241 Git bisect.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2173
diff changeset
   500
2211
473f6c2b0fdf Import patch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2209
diff changeset
   501
Import patch
473f6c2b0fdf Import patch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2209
diff changeset
   502
============
473f6c2b0fdf Import patch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2209
diff changeset
   503
473f6c2b0fdf Import patch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2209
diff changeset
   504
Check patch summary::
473f6c2b0fdf Import patch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2209
diff changeset
   505
473f6c2b0fdf Import patch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2209
diff changeset
   506
  git apply --stat my.patch
473f6c2b0fdf Import patch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2209
diff changeset
   507
473f6c2b0fdf Import patch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2209
diff changeset
   508
Detect possible errors during patch application::
473f6c2b0fdf Import patch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2209
diff changeset
   509
473f6c2b0fdf Import patch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2209
diff changeset
   510
  git apply --check my.patch
473f6c2b0fdf Import patch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2209
diff changeset
   511
473f6c2b0fdf Import patch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2209
diff changeset
   512
Apply patch to working tree without commit::
473f6c2b0fdf Import patch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2209
diff changeset
   513
473f6c2b0fdf Import patch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2209
diff changeset
   514
  git apply my.patch
473f6c2b0fdf Import patch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2209
diff changeset
   515
473f6c2b0fdf Import patch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2209
diff changeset
   516
Commit patch::
473f6c2b0fdf Import patch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2209
diff changeset
   517
473f6c2b0fdf Import patch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2209
diff changeset
   518
  git am my.patch
473f6c2b0fdf Import patch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2209
diff changeset
   519
473f6c2b0fdf Import patch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2209
diff changeset
   520
Commit patch by signing you as reviewer::
473f6c2b0fdf Import patch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2209
diff changeset
   521
473f6c2b0fdf Import patch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2209
diff changeset
   522
  git am --signoff my.patch
473f6c2b0fdf Import patch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2209
diff changeset
   523
2102
ce5d8887b874 Making local branch tracking remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2101
diff changeset
   524
Debug git network operation
ce5d8887b874 Making local branch tracking remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2101
diff changeset
   525
===========================
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   526
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   527
Git uses libcurl for network operation::
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   528
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   529
  $ export GIT_CURL_VERBOSE=1
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   530
  $ git ...
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   531
1076
9b2eb3c96d84 Push new repo to remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1032
diff changeset
   532
Push new repo to remote.
9b2eb3c96d84 Push new repo to remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1032
diff changeset
   533
========================
9b2eb3c96d84 Push new repo to remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1032
diff changeset
   534
::
9b2eb3c96d84 Push new repo to remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1032
diff changeset
   535
9b2eb3c96d84 Push new repo to remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1032
diff changeset
   536
  $ mkdir $REPO
9b2eb3c96d84 Push new repo to remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1032
diff changeset
   537
  $ cd $REPO
9b2eb3c96d84 Push new repo to remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1032
diff changeset
   538
  $ git init
9b2eb3c96d84 Push new repo to remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1032
diff changeset
   539
  $ git add .
9b2eb3c96d84 Push new repo to remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1032
diff changeset
   540
  $ git commit -m "Initial commit"
9b2eb3c96d84 Push new repo to remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1032
diff changeset
   541
  $ git remote add origin https://$USER:$PASS@$HOST/$REPO
9b2eb3c96d84 Push new repo to remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1032
diff changeset
   542
  $ git push -u origin master
9b2eb3c96d84 Push new repo to remote.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1032
diff changeset
   543
1641
04e215a475e0 Show heads in branch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1334
diff changeset
   544
Show heads in branch.
04e215a475e0 Show heads in branch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1334
diff changeset
   545
=====================
04e215a475e0 Show heads in branch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1334
diff changeset
   546
::
04e215a475e0 Show heads in branch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1334
diff changeset
   547
04e215a475e0 Show heads in branch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1334
diff changeset
   548
  $ git show-ref --heads -s
04e215a475e0 Show heads in branch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1334
diff changeset
   549
1932
6b987b040e18 Search string in file
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1912
diff changeset
   550
Search string in file
6b987b040e18 Search string in file
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1912
diff changeset
   551
=====================
6b987b040e18 Search string in file
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1912
diff changeset
   552
6b987b040e18 Search string in file
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1912
diff changeset
   553
To search string in all or specific files or working copy::
6b987b040e18 Search string in file
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1912
diff changeset
   554
6b987b040e18 Search string in file
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1912
diff changeset
   555
  $ git grep $PATT
6b987b040e18 Search string in file
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1912
diff changeset
   556
  $ git grep -i $PATT -- '*.[ch]'
6b987b040e18 Search string in file
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1912
diff changeset
   557
2403
f5347f511cb3 To search for string in commit messages.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2402
diff changeset
   558
To search for string in commit messages::
f5347f511cb3 To search for string in commit messages.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2402
diff changeset
   559
f5347f511cb3 To search for string in commit messages.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2402
diff changeset
   560
  $ git log --grep $PATT
f5347f511cb3 To search for string in commit messages.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2402
diff changeset
   561
  $ git log --grep $PATT --all
f5347f511cb3 To search for string in commit messages.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2402
diff changeset
   562
1932
6b987b040e18 Search string in file
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1912
diff changeset
   563
To search in all history::
6b987b040e18 Search string in file
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1912
diff changeset
   564
6b987b040e18 Search string in file
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1912
diff changeset
   565
  $ git log -S$PATT
2195
3556ec0e48be Search string in file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2190
diff changeset
   566
  $ git log --pickaxe-regex=$PATT
1932
6b987b040e18 Search string in file
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1912
diff changeset
   567
  $ git log -G$PATT
6b987b040e18 Search string in file
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1912
diff changeset
   568
  $ git grep -i PATT $(git rev-list --all) -- '*.[ch]'
6b987b040e18 Search string in file
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1912
diff changeset
   569
2195
3556ec0e48be Search string in file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2190
diff changeset
   570
.. note::
3556ec0e48be Search string in file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2190
diff changeset
   571
2402
032327906671 Fixed typo.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2360
diff changeset
   572
   ``-G`` search occurences in diff chunks, while ``-S`` detects changes in match count.
2195
3556ec0e48be Search string in file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2190
diff changeset
   573
3556ec0e48be Search string in file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2190
diff changeset
   574
https://git-scm.com/book/en/v2/Git-Tools-Searching
3556ec0e48be Search string in file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2190
diff changeset
   575
  Git Tools - Searching.
3556ec0e48be Search string in file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2190
diff changeset
   576
https://stackoverflow.com/questions/1337320/how-to-grep-git-commit-diffs-or-contents-for-a-certain-word
3556ec0e48be Search string in file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2190
diff changeset
   577
  How to grep Git commit diffs or contents for a certain word?
3556ec0e48be Search string in file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2190
diff changeset
   578
https://stackoverflow.com/questions/4468361/search-all-of-git-history-for-a-string
3556ec0e48be Search string in file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2190
diff changeset
   579
  Search all of Git history for a string?
3556ec0e48be Search string in file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2190
diff changeset
   580
https://stackoverflow.com/questions/2928584/how-to-grep-search-committed-code-in-the-git-history
3556ec0e48be Search string in file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2190
diff changeset
   581
  How to grep (search) committed code in the git history?
3556ec0e48be Search string in file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2190
diff changeset
   582
1089
2c23dfe7517e Find most recent tag for revision.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1076
diff changeset
   583
Find most recent tag for revision.
2c23dfe7517e Find most recent tag for revision.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1076
diff changeset
   584
==================================
2c23dfe7517e Find most recent tag for revision.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1076
diff changeset
   585
::
2c23dfe7517e Find most recent tag for revision.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1076
diff changeset
   586
2c23dfe7517e Find most recent tag for revision.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1076
diff changeset
   587
  $ git describe $REV
2c23dfe7517e Find most recent tag for revision.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1076
diff changeset
   588
1815
49fb4309d4d0 Find most recent tag for revision.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1771
diff changeset
   589
Many projects set tags on branches rather then mainline (for example JS/CSS
49fb4309d4d0 Find most recent tag for revision.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1771
diff changeset
   590
projects perform build and commit binary/minified files, which unnecessary for
49fb4309d4d0 Find most recent tag for revision.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1771
diff changeset
   591
mainline history). In this case review simplifiied history by::
49fb4309d4d0 Find most recent tag for revision.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1771
diff changeset
   592
49fb4309d4d0 Find most recent tag for revision.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1771
diff changeset
   593
  $ git log --graph --all --decorate --oneline --simplify-by-decoration
49fb4309d4d0 Find most recent tag for revision.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1771
diff changeset
   594
1714
eed8cfffa44e List tags with dates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1651
diff changeset
   595
List tags with dates.
eed8cfffa44e List tags with dates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1651
diff changeset
   596
=====================
eed8cfffa44e List tags with dates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1651
diff changeset
   597
::
eed8cfffa44e List tags with dates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1651
diff changeset
   598
eed8cfffa44e List tags with dates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1651
diff changeset
   599
  $ git log --tags --simplify-by-decoration --pretty="format:%ci %d"
eed8cfffa44e List tags with dates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1651
diff changeset
   600
eed8cfffa44e List tags with dates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1651
diff changeset
   601
Update to date.
eed8cfffa44e List tags with dates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1651
diff changeset
   602
===============
eed8cfffa44e List tags with dates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1651
diff changeset
   603
::
eed8cfffa44e List tags with dates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1651
diff changeset
   604
eed8cfffa44e List tags with dates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1651
diff changeset
   605
  $ git checkout 'master@{1979-02-26}'
eed8cfffa44e List tags with dates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1651
diff changeset
   606
  $ git checkout 'master@{1979-02-26 18:30:00}'
eed8cfffa44e List tags with dates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1651
diff changeset
   607
2505
5262c08480dc Backup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2414
diff changeset
   608
Backup
5262c08480dc Backup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2414
diff changeset
   609
======
5262c08480dc Backup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2414
diff changeset
   610
2542
79885bc317d2 git bundle create.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2505
diff changeset
   611
Create a bundle (a single file with specified Git objects, ``--all`` for complete history)::
2505
5262c08480dc Backup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2414
diff changeset
   612
2542
79885bc317d2 git bundle create.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2505
diff changeset
   613
  $ git bundle create $REPO.bundle --all
2505
5262c08480dc Backup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2414
diff changeset
   614
5262c08480dc Backup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2414
diff changeset
   615
Recreate repository from bundle::
5262c08480dc Backup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2414
diff changeset
   616
2542
79885bc317d2 git bundle create.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2505
diff changeset
   617
  $ git clone $REPO.bundle $REPO_DIR
79885bc317d2 git bundle create.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2505
diff changeset
   618
79885bc317d2 git bundle create.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2505
diff changeset
   619
.. note:: ``git init; git bundle unbundle $BUNDLE`` doesn't recreate refs, you need to use ``git
79885bc317d2 git bundle create.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2505
diff changeset
   620
   clone`` instead.
2505
5262c08480dc Backup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2414
diff changeset
   621
5262c08480dc Backup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2414
diff changeset
   622
Or clone without checking out working directory::
5262c08480dc Backup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2414
diff changeset
   623
5262c08480dc Backup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2414
diff changeset
   624
  $ git clone --mirror $ORIG $DEST
5262c08480dc Backup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2414
diff changeset
   625
5262c08480dc Backup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2414
diff changeset
   626
Bundle is a single file, clone creates `.git` file hierarchy.
5262c08480dc Backup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2414
diff changeset
   627
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   628
Using git to work with SVN offline.
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   629
===================================
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   630
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   631
Prepare SVN and git utilities::
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   632
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   633
  $ sudo apt-get svn git-core git-svn
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   634
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   635
Making SVN repo::
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   636
2251
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   637
  $ cd $HOME/tmp
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   638
  $ svnadmin create svn-repo
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   639
  $ svn co file://$HOME/tmp/svn-repo svn-devel
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   640
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   641
  $ cd svn-devel
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   642
  $ mkdir tags trunk branches
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   643
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   644
  $ svn add *
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   645
  A         branches
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   646
  A         tags
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   647
  A         trunk
2251
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   648
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   649
  $ cd trunk/
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   650
  $ printf "all:\n  echo XXX\n" >Makefile
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   651
  $ printf "int main() {return 0;}" >main.c
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   652
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   653
  $ svn add *
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   654
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   655
  $ cd ..
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   656
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   657
  $ svn st
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   658
  A      trunk
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   659
  A      trunk/main.c
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   660
  A      trunk/Makefile
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   661
  A      branches
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   662
  A      tags
2251
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   663
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   664
  $ svn ci -m init
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   665
  Adding         branches
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   666
  Adding         tags
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   667
  Adding         trunk
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   668
  Adding         trunk/Makefile
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   669
  Adding         trunk/main.c
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   670
  Transmitting file data ..
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   671
    $ svn cp -m v0.0 file://$HOME/tmp/svn/trunk file://$HOME/tmp/svn/tags/v0.0
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   672
    $ svn cp -m v0.1 file://$HOME/tmp/svn/trunk file://$HOME/tmp/svn/branches/v0.1
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   673
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   674
Moving SVN changset to git repo::
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   675
2251
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   676
  $ cd $HOME/tmp
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   677
  $ git svn init file://$HOME/tmp/svn git-repo
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   678
  $ ls -a
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   679
  .  ..  .git
2251
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   680
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   681
  $ git svn fetch
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   682
      A   trunk/main.c
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   683
      A   trunk/Makefile
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   684
  W: +empty_dir: branches
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   685
  W: +empty_dir: tags
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   686
  r1 = 52ccd9882979dd53ec198dbac108783ec660410f (git-svn)
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   687
      A   tags/v0.0/main.c
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   688
      A   tags/v0.0/Makefile
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   689
  r2 = 8ec8a772bb6f37ace56b3649066dc84e481ed427 (git-svn)
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   690
      M   trunk/Makefile
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   691
  r3 = 2c169ff409ed504dd6a092b1e302beb3fd94871e (git-svn)
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   692
      A   branches/v0.1/main.c
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   693
      A   branches/v0.1/Makefile
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   694
  r4 = e68d76f4ba6beea4b9059c1884c1f38ce10831a7 (git-svn)
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   695
      M   trunk/Makefile
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   696
  r5 = cdde63974454b13ac53f2eeb201aa76c49fd875c (git-svn)
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   697
  Checked out HEAD:
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   698
    file:///home/sasha/tmp/svn r5
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   699
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   700
or (in old git version)::
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   701
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   702
  $ git svn clone file://$HOME/tmp/svn git-repo
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   703
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   704
Making changes in svn::
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   705
2251
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   706
  $ cd $HOME/tmp/svn-devel/trunk
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   707
  $ echo ".PHONY: clean" >>Makefile
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   708
  $ svn ci -m "Added clean to phony."
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   709
  Sending        trunk/Makefile
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   710
  Transmitting file data .
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   711
  Committed revision 6.
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   712
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   713
Making committed in git::
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   714
2251
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   715
  $ cd $HOME/tmp/git-repo/trunk
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   716
  $ echo ".PHONY: all" >>Makefile
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   717
  $ echo "int foo(int x) {return x+x;}" >>main.c
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   718
  $ git status
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   719
  # On branch master
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   720
  # Changed but not updated:
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   721
  #   (use "git add <file>..." to update what will be committed)
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   722
  #
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   723
  #       modified:   Makefile
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   724
  #       modified:   main.c
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   725
  #
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   726
  no changes added to commit (use "git add" and/or "git commit -a")
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   727
    $ git commit -a -m "Bug fixed."
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   728
  Created commit 222d399: Bug fixed.
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   729
   2 files changed, 2 insertions(+), 0 deletions(-)
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   730
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   731
Getting changes from SVN to git::
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   732
2251
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   733
  $ git svn rebase
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   734
    M   trunk/Makefile
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   735
  r6 = 8165e9bfb38e9df09a7313d19606ec227629b670 (git-svn)
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   736
  First, rewinding head to replay your work on top of it...
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   737
  Applying Bug fixed.
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   738
  error: patch failed: trunk/Makefile:6
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   739
  error: trunk/Makefile: patch does not apply
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   740
  Using index info to reconstruct a base tree...
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   741
  Falling back to patching base and 3-way merge...
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   742
  Auto-merged trunk/Makefile
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   743
  CONFLICT (content): Merge conflict in trunk/Makefile
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   744
  Failed to merge in the changes.
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   745
  Patch failed at 0001.
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   746
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   747
  When you have resolved this problem run "git rebase --continue".
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   748
  If you would prefer to skip this patch, instead run "git rebase --skip".
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   749
  To restore the original branch and stop rebasing run "git rebase --abort".
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   750
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   751
  rebase refs/remotes/git-svn: command returned error: 1
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   752
    $ git add Makefile
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   753
    $ git rebase --continue
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   754
  Applying Bug fixed.
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   755
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   756
and return all from git to SVN::
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   757
2251
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   758
  $ git svn dcommit
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   759
  Committing to file:///home/sasha/tmp/svn ...
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   760
      M   trunk/Makefile
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   761
      M   trunk/main.c
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   762
  Committed r7
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   763
      M   trunk/main.c
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   764
      M   trunk/Makefile
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   765
  r7 = 68e782c8d06635f2db4dd69b9ca8599f99da22e2 (git-svn)
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   766
  No changes between current HEAD and refs/remotes/git-svn
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   767
  Resetting to the latest refs/remotes/git-svn
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   768
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   769
See what going to SVN repo::
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   770
2251
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   771
  $ cd $HOME/tmp/svn-devel/trunk
841872ee6d85 Fixed indentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2233
diff changeset
   772
  $ svn diff -r BASE:HEAD
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   773
  Index: Makefile
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   774
  ===================================================================
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   775
  --- Makefile    (working copy)
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   776
  +++ Makefile    (revision 7)
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   777
  @@ -6,4 +6,4 @@
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   778
   .o: .c
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   779
      $(CC) $(CFLAGS) -c -o $@ $<
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   780
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   781
  -.PHONY: clean
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   782
  +.PHONY: all clean
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   783
  Index: main.c
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   784
  ===================================================================
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   785
  --- main.c  (working copy)
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   786
  +++ main.c  (revision 7)
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   787
  @@ -2,3 +2,4 @@
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   788
   {
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   789
       return 0;
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   790
   }
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   791
  +int foo(int x) {return x+x;}
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   792
    $ svn up
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   793
  U    Makefile
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   794
  U    main.c
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   795
  Updated to revision 7.
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   796
2262
bb7e7ae562c2 Get latest changes from SVN and update Git repo state.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2253
diff changeset
   797
Get latest changes from SVN and update Git repo state::
bb7e7ae562c2 Get latest changes from SVN and update Git repo state.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2253
diff changeset
   798
bb7e7ae562c2 Get latest changes from SVN and update Git repo state.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2253
diff changeset
   799
  $ git svn fetch
bb7e7ae562c2 Get latest changes from SVN and update Git repo state.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2253
diff changeset
   800
  $ git svn rebase
bb7e7ae562c2 Get latest changes from SVN and update Git repo state.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2253
diff changeset
   801
1002
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   802
gitk.
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   803
=====
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   804
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   805
gitk - The git repository browser. See gitk(1).
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   806
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   807
Installing::
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   808
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   809
  $ sudo apt-get instal gitk
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   810
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   811
Using::
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   812
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   813
  $ cd /path/to/git-repo
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   814
  $ gitk
234cd58cae56 Fix RTS syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   815