【Git学习笔记六】自定义Git

我是研究僧i 提交于 2020-01-10 08:14:48

版权声明:本文为 小异常 原创文章,非商用自由转载-保持署名-注明出处,谢谢!
本文网址:https://blog.csdn.net/sun8112133/article/details/103891412








一、配置 Git

在之前安装 Git 中,我们已经配置过了 user.nameuser.email,实际上还有很多可配置项,比如配置 Git 中显示颜色(如下),在这里不作过多讲解。

git config --global color.ui true

配置颜色


1、查看配置

git config --list

查看配置


2、添加配置

git config --global 配置名 配置值

添加配置


3、修改配置

修改配置直接重新添加,保持配置名相同即可,它会自动覆盖之前的配置。

修改配置


4、删除配置

git config --global --unset 配置名

删除配置


5、配置文件

在配置 Git 的时候,加上 --global 参数是针对当前计算机用户起作用的,配置文件会放到用户主目录下的 .gitconfig 文件中;如果不加,那只针对当前仓库起作用,配置文件会放在 .git/config 文件中。

想要修改和删除某些配置项,可以直接在配置文件中操作,不熟悉配置文件的小伙伴不建议这样操作。

1)用户配置文件

用户配置文件

用户配置文件2

2)仓库配置文件

仓库配置文件

仓库配置文件2



二、忽略特殊文件

有些时候某个文件必须要放在 Git 的工作区中,但是又不能提交它们,比如保存数据库密码的配置文件等,每次提交时都不能痛快的将工作区中所有的文件全部提交仓库,还得一个一个文件名去指定,这样明显效率低下,显然不是 Git 的风格。

解决这个问题也很简单,只需要在 Git 工作区的根目录中创建一个特殊的文件,这个文件名是:.gitignore 。然后把想要忽略的文件名填进行即可,Git 会自动忽略这些文件,不会将这些文件提交到仓库了。

这个文件内容也不需要自己从头写,因为 GitHub 已经为我们开发者提供了各种配置文件,只需要组合一下就可以使用了,详见:https://github.com/github/gitignore

1、小实例

比如 Java 编译生成的 .class 文件是没必要放到版本库中的,所以我们设置 .class 文件被 Git 忽略。

1).gitignore 文件

在工作区根目录中新建一个 .gitignore 文件,打开这个文件输入以下内容并保存。

注意: # 是注释内容, * 是任意:

# 屏蔽 class 文件
*.class

使用 Windows 的小伙伴可能在新建 .gitignore 文件时,会提示你必须输入文件名,这时候你需要在文本编辑器(记事本就可以)里保存或者另存为,这样就可以将文件保存为 .gitignore 了。

2)Git 命令

.gitignore 文件提交到版本库中就可以开始我的表演了。

忽略.class文件


2、强制添加

有些时候,你想添加一个文件到仓库,你会发现这个文件名被 .gitignore 文件忽略了而添加不了,我们这时候可以通过加 -f 参数进行强制添加:

强制添加


3、检查忽略规则

有时候在添加大量类似文件时,发现添加不上,可能是 .gitignore 文件写的有问题,但由于这个文件内容过多,如果直接打开找到底是哪个规则写错了,是很不方便的,这时候我们可以使用 git check-ignore -v 文件名 命令检查规则,如下图:

检查忽略规则

Git 会告诉我们,.gitignore 的第 2 行规则忽略了该文件,我们就知道是因为这个规则写错了,应该去修订它。



三、配置别名

有些命令不太好记,我们也可以给它配置相应的别名,比如:git statusstatus 这个单词不太好记,我们可以将 status 配置别名 st,那么我们以后输入 git st 就相当于输入了 git status 了。

1、配置别名命令

git config --global alias.别名 命令

status别名


2、简化操作

我们之前写查询历史记录(git log --graph --pretty=oneline --abbrev-commit)这条命令时,太长也很难记忆,我们也可以将这一大串命令简化为 git lg ,这样是不是很容易记忆了?

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

简化log命令



四、搭建 Git 服务器(Ubuntu Linux)

GitHub 是一个免费的托管开源代码的远程仓库,虽然它也可以不开源,但是不开源有很多限制,我们在使用起来不能尽如人意。我们也可以自己搭建一台 Git 服务器作为私有仓库使用。

本章就以 Ubuntu Linux 为环境进行搭建,假设你已经有 sudo 权限的用户账号:

1、第一步,安装 git

sudo apt-get install git

安装git


2、第二步,创建一个 git 用户,用来运行 git 服务

创建 git 用户时,可能会让你设置一个新的密码,这个密码将用来连接或克隆 Git 远程库。

sudo adduser git

创建git用户


3、第三步,创建证书登录

收集所有需要登录的用户的公钥,就是他们自己的 id_rsa.pub 文件,把所有公钥导入到 /home/git/.ssh/authorized_keys 文件里,一行一个。

sudo vi /home/git/.ssh/authorized_keys

4、第四步,初始化 Git 仓库

先选定一个目录作为 Git 仓库,假定是 /home/git/mygit/sample.git,在 /mygit 目录下输入命令:

git init --bare sample.git

此时 Git 会创建一个裸仓库,所谓裸仓库就是没有工作区更不能使用正常的 Git 命令,因为服务器上的 Git 仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区。

初始化Git仓库


5、第五步,禁用 shell 登录:

出于安全考虑,第二步创建的 git 用户不允许登录 shell,这可以通过编辑 /etc/passwd 文件完成。从文件中找到类似下面的一行:

git:x:1001:1001:,,,:/home/git:/bin/bash

改为:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

这样,git 用户只能通过 ssh 使用 git,但无法登录 shell,因为我们为 git 用户指定的 git-shell 每次一登录就自动退出。


6、第六步,连接或克隆远程仓库

如果是第一次或更新,需要添加远程仓库,往远程仓库上推送内容:

$ git remote add origin git@服务器地址:/mygit/sample.git

如果是其他小伙伴加入,可以通过 git clone 命令克隆远程仓库了,在各自的电脑上运行:

$ git clone git@服务器地址:/mygit/sample.git
Cloning into 'sample'...
warning: You appear to have cloned an empty repository.


博客中若有不恰当的地方,请您一定要告诉我。前路崎岖,望我们可以互相帮助,并肩前行!



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!