Git:知识回顾

2021-11-08  本文已影响0人  春暖花已开

一、起步之Git的设置与配置

Git的配置分为系统级别—system用户级别—global仓库级别—local,他们对应的配置文件分别放在/etc/gitconfig~/.gitconfig~/.config/git/config.git/config里。

$ git config --local #只对某个仓库有效;优先级最高
$ git config --global #对当前用户下的所有git仓库有效;优先级中
$ git config --system #对系统所有登录用户有效;优先级最低

每一级别会覆盖上一级别的配置,所以 .git/config 的配置变量会覆盖 /etc/gitconfig 中的配置变量。也就是说,仓库级别的优先级最高。(一般我们都是使用用户级别的配置)

1、用户信息
a. 命令设置用户名和邮件地址(使用了 --global 选项,那么该命令只需要运行一次):
$ git config --global user.name 'Lynn Zhang'
$ git config --global user.email 'lynn@qq.com'
b. 检查配置信息

可以通过以下命令查看所有的配置及他们所在的文件:

$ git config --global -l

有时候可能会看到重复的变量名,因为 Git 会从不同的文件中读取同一个配置(例如:/etc/gitconfig~/.gitconfig)。 这种情况下,Git 会使用它找到的每一个变量的最后一个配置。

可以通过输入 git config <key>: 来检查 Git 的某一项配置,如:

$ git config --global user.name
Lynn Zhang
2、Git别名

通过 git config -l 查看系统为我们预设的别名:

$ alias.s=status
$ alias.a=!git add . && git status
$ alias.au=!git add -u . && git status
$ alias.aa=!git add . && git add -u . && git status
$ alias.c=commit
$ alias.cm=commit -m
$ alias.ca=commit --amend
$ alias.ac=!git add . && git commit
$ alias.acm=!git add . && git commit -m
$ alias.l=log --graph --all --pretty=format:'%C(yellow)%h%C(cyan)%d%Creset %s %C(white)- %an, %ar%Creset'
$ alias.ll=log --stat --abbrev-commit
$ alias.lg=log --color --graph --pretty=format:'%C(bold white)%h%Creset -%C(bold green)%d%Creset %s %C(bold green)(%cr)%Creset %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
$ alias.llg=log --color --graph --pretty=format:'%C(bold white)%H %d%Creset%n%s%n%

那么,当需要输入 git status 的时候,只需要输入 git s。往往,系统给预设的这些命令是不够的,就需要创建自己的别名了。

以下是举例设置自定义别名的示例:

a. 取消暂存
$ git config --global alias.unstage 'reset HEAD --'

这会使下面的两个命令等价:

$ git unstage fileA
$ git reset HEAD -- fileA
b. 查看最后一次的提交
$ git config --global alias.last 'log -1 HEAD'
c. 要执行外部命令,而不是一个 Git 子命令。 如果是那样的话,可以在命令前面加入 ! 符号。
$ git config --global alias.visual '!gitk'
3、凭证存储

使用的是 SSH 方式连接远端,并且设置了一个没有口令的密钥,这样就可以在不输入用户名和密码的情况下安全地传输数据。然而,这对 HTTP 协议来说是不可能的。

但Git 拥有一个凭证系统来处理这个事情。 下面有一些 Git 的选项:

设置 Git 的配置来选择上述的一种方式

$ git config --global credential.helper cache

“store” 模式可以接受一个 --file <path> 参数,可以自定义存放密码的文件路径(默认是 ~/.git-credentials )。 “cache” 模式有 --timeout <seconds> 参数,可以设置后台进程的存活时间(默认是 “900”,也就是 15 分钟)。 下面是一个配置 “store” 模式自定义路径的例子:

$ git config --global credential.helper 'store --file ~/.my-credentials'

Git 甚至允许你配置多个辅助工具。 当查找特定服务器的凭证时,Git 会按顺序查询,并且在找到第一个回答时停止查询。 当保存凭证时,Git 会将用户名和密码发送给 所有 配置列表中的辅助工具,它们会按自己的方式处理用户名和密码。 如果你在闪存上有一个凭证文件,但又希望在该闪存被拔出的情况下使用内存缓存来保存用户名密码,.gitconfig 配置文件如下:

[credential]
    helper = store --file /mnt/thumbdrive/.git-credentials
    helper = cache --timeout 30000
4、获取帮助
$ git help <verb>
$ git <verb> --help
$ man git-<verb>

如,要想获得 git config 命令的手册,执行

$ git help config
$ git config --help
$ man git-config

二、基础

1、获取Git仓库
$ cd 项目代码所在的文件夹
$ git init
$ cd 某个文件夹
$ git init your_project #在当前目录下创建一个和项目名称同名的文件夹
$ cd your_project
$ git clone https://github.com/lynn/AvoidCrashKit

这会在当前目录下创建一个名为 “AvoidCrashKit” 的目录,并在这个目录下初始化一个 .git 文件夹, 从远程仓库拉取下所有数据放入 .git 文件夹,然后从中读取最新版本的文件的拷贝。 如果你进入到这个新建的 AvoidCrashKit 文件夹,你会发现所有的项目文件已经在里面了。

$ git clone https://github.com/lynn/AvoidCrash ProtectKit

会执行与上一条命令相同的操作,但目标目录名变为了 ProtectKit

2、常用命令

说明现在的工作目录相当干净。换句话说,所有已跟踪文件在上次提交后都未被更改过。还显示了当前所在分支,并告诉你这个分支同远程服务器上对应的分支没有偏离。

上一篇 下一篇

猜你喜欢

热点阅读