Git是一个开源的分布式版本控制系统,用于高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

这篇文章只是简单地记录一下Git的一些基本命令,并不涉及一些高级的操作(笔者也不会)。

linux安装Git

1
yum install git //apt install git

初次使用需要设置用户和密码:

1
2
3
git config --global user.name "xxx" //用户名

git config --global user.email "xxx@xxx" //你的邮箱

配置git用户

1
2
3
4
cd ~
adduser git
chmod 740 /etc/sudoers
vi /etc/sudoers

按图找到并添加框中语句:

image-20210816125641236

保存退出,将权限改回:

1
chmod 400 /etc/sudoers

设置git用户密码:

1
sudo passwd git

创建密钥目录

1
2
3
4
5
6
7
8
9
10
11
12
13
cd /home/git

mkdir .ssh #创建目录

chown -R git:git .ssh #修改拥有者

cd .ssh

touch authorized_keys #创建keys文件

chmod 700 authorized_keys #修改文件权限

chown -R git:git authorized_keys#修改文件拥有者

创建完成后,在本地电脑上执行

1
ssh-keygen -t rsa -C "xxx@xxx" //你的邮箱

然后一直按enter直到出现密钥图案。

C:\Users\用户名\.ssh路径下找到id_rsa.pub这个文件,复制其中内容到服务器刚刚创建的authorized_keys文件中即可使用密钥登陆。

使用Git部署代码到远程仓库

原理:首先在服务器端创建一个.git目录,再利用钩子连接服务器的存放代码的目录,本地仓库连接这个.git裸仓库上传代码,就会自动上传到代码目录。

例如,将本地的local文件夹上传到服务器的/home/server文件夹:

服务器操作

1
2
3
cd /home
mkdir server.git //创建一个server.git裸仓库
chmod 777 server.git

创建好server.git文件夹后首先进行git初始化:

1
2
cd server.git
git init --bare //这里并不推荐直接使用git init

然后就会出现很多文件,这里只需要写钩子连接仓库

1
2
cd hooks
vi post-receive //创建post-receive文件并输入

写入内容并保存:

1
git --work-tree=/home/server --git-dir=/home/server.git checkout -f

其中,work-tree=处为服务器存放代码的目录,--git-dir=处为.git目录所在的位置。

本地操作

进入local文件夹(本地代码仓库),进行git 初始化:

1
git init

然后添加远程代码仓库路径

1
git remote add origin git@你的公网ip:/home/server.git

冒号后面地址是.git目录所在的位置。

如果操作无误,这样一来就完成了本地仓库与远程仓库的连接了。

推送代码

执行常规四连操作:

1
2
3
4
git status //检查状态
git add . //将变化文件添加到暂存区
git commit -m "备注" //生成一个提交
git push //推送代码

如果没有设置密钥,在push后会让输入密码,这是服务器上git用户的密码,输入密码即完成推送。

一些注意事项

合并新旧分支

1
2
3
4
# 将远端仓库的master分支拉取、合并到本地的master分支
$ git pull origin main --allow-unrelated-histories
# 然后再将本地仓库git push到远端
$ git push -u origin main

留待补充