Git常用配置

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/dahaohan/article/details/82981874

Git安装

Git配置说明

Git 提供了一个叫做 git config 命令,专门用来配置或读取相应的工作环境变量。而正是由这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:

  • /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。
  • ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。
  • 当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。
  1. Git用户信息配置
    首先需要配置用户信息,每次 Git 提交时都会引用用户信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录:
    $ git config --global user.name "John Doe"
    $ git config --global user.email [email protected]

  2. Git文本编辑器配置
    Git 需要你输入一些额外消息的时候,会自动调用一个外部文本编辑器给你用。默认会使用操作系统指定的默认编辑器,一般可能会是 Vi 或者 Vim。如果你有其他偏好,常用的:Emacs、Sublime Text、VSCode可以重新设置:
    $ git config --global core.editor emacs

  3. Git差异比较&冲突解决工具配置
    Git在解决合并冲突时或者对比文件差异时使用哪种差异分析工具:
    # git config --global diff.tool meld
    # git config --global merge.tool meld
    常用的差异分析工具有MeldDiffmerge
    需要查看差异或者解决冲突合并时,使用如下命令即可:
    git difftool
    git mergetool

  4. Git命令别名配置
    Git很多命名比较长并且带比较多的参数,补全功能不那么好用的情况下每次键入完整命令还是比较痛苦的,命令别名可以简化git使用:
    $ git config --global alias.co checkout
    $ git config --global alias.br branch
    $ git config --global alias.ci commit
    $ git config --global alias.st status
    上述: git ci == git commit
    $ git config --global alias.unstage 'reset HEAD --'
    git unstage fileA == git reset HEAD fileA

  5. Git SSH配置
    大多数 Git 服务器都会选择使用 SSH 公钥来进行授权。系统中的每个用户都必须提供一个公钥用于授权,没有的话就要生成一个。 首先先确认一下是否已经有一个公钥了。SSH 公钥默认储存在账户的主目录下的 ~/.ssh 目录:
    在这里插入图片描述
    秘钥文件一般为id_dsa 或 id_rsa文件,有 .pub 后缀的文件就是公钥,另一个文件则是密钥。
    没有这些文件,或者干脆连 .ssh 目录都没有,可以用 ssh-keygen 来创建。

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/schacon/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/schacon/.ssh/id_rsa.
Your public key has been saved in /Users/schacon/.ssh/id_rsa.pub.

它先要求你确认保存公钥的位置(.ssh/id_rsa),然后它会让你重复一个密码两次,如果不想在使用公钥的时候输入密码,可以留空。

最后把公钥给你或者 Git 服务器的管理员(假设 SSH 服务被设定为使用公钥机制)。他们只需要复制 .pub 文件的内容然后发邮件给管理员。公钥的样子大致如下:

$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== [email protected]
  1. Git 查看配置
$ git config --list
user.name=Jokerlee
[email protected]
color.status=auto
color.diff=auto
... 

附上常用的Mac Git配置文件(~/.gitconfig)

对于能偷懒来说直接复制覆盖~/.gitconfig 文件是个好选择

[http]
    postBuffer = 524288000
[user]
	name = yourName
	email = yourEmail
[core]
    quotepath = false
    autocrlf = input
    #editor = gedit
    editor = /Applications/Sublime\\ Text.app/Contents/SharedSupport/bin/subl  -n -w
[color]
    ui = auto
[alias]   
    st = status
    cm = commit
    cmd = commit --amend
    co = checkout
    br = branch
    unstage = reset HEAD --
    last = log -1 HEAD --decorate --stat
    lt = log -1 HEAD --decorate --stat

    ll = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --numstat
    ld = log --pretty=format:"%C(yellow)%h\\ %C(green)%ad%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --all --decorate --date=short --graph
    ls = log --pretty=format:"%C(green)%h\\ %C(yellow)[%ad]%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --date=relative
    lg = log --decorate --stat
    lg2 = log --decorate --stat -2
  
    rbs = rebase
    rbc = rebase --continue
    rba = rebase --abort
    svd = svn dcommit
    svr = svn rebase    

[diff]
  tool = meld
[difftool]
  prompt = false
[difftool "meld"]
  trustExitCode = true
  cmd = open -W -a Meld --args \"$LOCAL\" \"$REMOTE\"
[merge]
  tool = meld
[mergetool]
  prompt = false
[mergetool "meld"]
  trustExitCode = true
  cmd = open -W -a Meld --args --auto-merge \"$LOCAL\" \"$BASE\" \"$REMOTE\" --output=\"$MERGED\"
[filter "lfs"]
	clean = git-lfs clean -- %f
	smudge = git-lfs smudge -- %f
	process = git-lfs filter-process
	required = true

猜你喜欢

转载自blog.csdn.net/dahaohan/article/details/82981874