陈斌彬的技术博客

Stay foolish,stay hungry

Git 配置

Git 文件的三种状态

对于任何一个文件,在 Git 内都只有三种状态:已提交 (committed),已修改 ()modified)和已暂存 (staged)。已提交表示该文件已经被安全地保存在本地数据库中了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已修改的文件放在下次提交时要保存的清单中。 下图所示:工作目录,暂存区域,以及本地仓库

img

初次运行 Git 前的配置

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

  • /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system选项,读写的就是这个文件。
  • ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。
  • 当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。

修改 Git remote add 远程仓库

自己有时候打字太快难免会出错,特别是这个指令,属于配置,无论对错,一开始不会改就把整个 git 删了重新创建,真是无语了自己。现在总结下,其实不用那么麻烦,改条指令就 OK 了。

方法1.修改命令

1
git remote origin set-url URL

方法2.先删后加

1
2
git remote rm origin
git remote add origin git@github.com:Liutos/foobar.git

git 修改用户名和邮箱

一开始我在用 git 的时候,直接就是用下面这种全局设置的方法来进行配置

1
2
git config --global user.name "Your Name"
git config --global user.email you@example.com

后来发现,当我要用多账号来登录时,麻烦了,这时候找到的一种可行的修改指令如下:

1
git commit --amend --author 'Your Name <you@example.com>'

但是,建议还是最好单独对 git 仓库进行局部配置。 首先是取消 git 的全局设置

1
2
git config --global --unset user.name
git config --global --unset user.email

然后针对每个项目,单独设置用户名和邮箱,设置方法如下:

方法一:

1
2
3
4
5
mkdir /test // git检出目录
cd ~/test
git init
git config user.name "your_name"
git config user.email "your_email"

方法二:

直接编辑config,执行指令:

1
$ git config -e

然后输入 i进行编辑添加 :

1
2
3
[user]
        name = your_name
        email = your_email@email.com

最后按 ESC -> :wq 保存退出。

说白了,也就是进入到你的 git 项目相对根目录下,然后执行 git config 设置记录。

最后通过 git config -l 查看 config 配置,用 git config --global -l 查看全局设置。

git 自动补全命令

1.下载 git 源码 clone 到本地

1
$ git clone https://github.com/git/git.git

找到contrib/completion/目录下的git-completion.bash,将该文件拷贝到~/下并重命名为.git-completion.bash

1
$ cp git-completion.bash ~/.git-completion.bash

~/.bashrc 文件中添加下边的内容:

1
source ~/.git-completion.bash

在输入 git 命令的时候可以敲两次跳格键(Tab),就会看到列出所有匹配的可用命令建议:

1
2
$ git co<tab><tab>
commit config

此例中,键入 git co 然后连按两次 Tab 键,会看到两个相关的建议(命令) commit 和 config 。继而输入 m<tab> 会自动完成 git commit 命令的输入。

git 命令别名

可以用 git config 为命令设置别名。如下例子:

$ 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 commit 只需键入git ci 即可。

注意

1
2
3
~/  是应用程序根目录
./  是当前目录
../ 表示当前目录的上一级目录

参考