Difference between revisions of "Git"

From Christoph's Personal Wiki
Jump to: navigation, search
(External links)
(Examples)
Line 27: Line 27:
 
* Clone a specific remote branch:
 
* Clone a specific remote branch:
 
  $ git clone --single-branch --branch <branchname> <remote-repo>
 
  $ git clone --single-branch --branch <branchname> <remote-repo>
 +
 +
===Miscellaneous===
 +
 +
* View current git user:
 +
$ git config user.email
 +
 +
* Change to a different git user:
 +
$ git config --global user.email "someone@somewhere.com"
  
 
===git-svn===
 
===git-svn===
Line 33: Line 41:
 
  $ git svn init -t tags -b branches -T trunk <nowiki>https://pymmlib.svn.sourceforge.net/svnroot/pymmlib</nowiki>
 
  $ git svn init -t tags -b branches -T trunk <nowiki>https://pymmlib.svn.sourceforge.net/svnroot/pymmlib</nowiki>
 
  $ git svn fetch
 
  $ git svn fetch
 +
 +
==Gitconfig==
 +
 +
* Example:
 +
<pre>
 +
$ cat ~/.gitconfig
 +
[user]
 +
    name = Christoph Champ
 +
    email = someone@somewhere.com
 +
[push]
 +
    default = simple
 +
[alias]
 +
    lg1 = log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all
 +
    lg2 = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n''          %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all
 +
    lg = !"git lg1"
 +
[url "git@github.com:"]
 +
    insteadOf = https://github.com/
 +
</pre>
  
 
==See also==
 
==See also==

Revision as of 15:45, 9 July 2020

Git is a distributed revision control / software configuration management project created by Linus Torvalds, initially for the Linux kernel development.

Git is by far my favourite revision control system. I not only use it for software management, I also use it as my backup system for any of my text files.

Examples

Basic

  • Quick help:
$ git help      # returns most common commands
$ git help -a   # get a list of all installed git commands
$ man git-add   # man page on the 'add' command
  • Start a new git repository:
$ mkdir my_new_project && cd my_new_project
$ git init
# create some new files, then:
$ git add .
$ git commit
#~OR~
$ git commit -am 'initial commit message'
  • See what has changed since last commit:
$ git diff
  • A more concise way to view what has changed and what needs to be done:
$ git status
  • Clone a specific remote branch:
$ git clone --single-branch --branch <branchname> <remote-repo>

Miscellaneous

  • View current git user:
$ git config user.email
  • Change to a different git user:
$ git config --global user.email "someone@somewhere.com"

git-svn

  • The following three commands will import a remote svn repository into a local git repository:
$ mkdir pymmlib && cd pymmlib
$ git svn init -t tags -b branches -T trunk https://pymmlib.svn.sourceforge.net/svnroot/pymmlib
$ git svn fetch

Gitconfig

  • Example:
$ cat ~/.gitconfig
[user]
    name = Christoph Champ
    email = someone@somewhere.com
[push]
    default = simple
[alias]
    lg1 = log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all
    lg2 = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n''          %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all
    lg = !"git lg1"
[url "git@github.com:"]
    insteadOf = https://github.com/

See also

External links