您现在的位置是:首页 >其他 >Git常用操作:基础命令、生成公钥、webhook同步网站首页其他

Git常用操作:基础命令、生成公钥、webhook同步

Happly·嘻嘻 2024-06-17 10:18:18
简介Git常用操作:基础命令、生成公钥、webhook同步

下载安装GIT

此处只介绍windows系统下的安装,linux一般都是自带git(自行百度)

下载Git 官方地址为:https://git-scm.com/download/wi
在这里插入图片描述
下载好对应的安装程序打开一路点击下一步即可,最终鼠标右侧菜单栏出现对应部分即为安装成功
在这里插入图片描述

基础命令

记录下常用的git基础命令

克隆

git clone 仓库地址

其中仓库地址大概有两种

  • 其一类似于:https://gitee.com/******
  • 其二类似于:git@gitee.com:******,这种码云注册公钥后每次提交下拉就不用验证身份了

初始化

git init

与仓库建立连接

git remote add origin git@gitee.com******

下拉代码

通常命令

git pull

初始化仓库后的首次下拉,需要指定分支

git pull origin master

强制下拉

git fetch --all && git reset --hard origin/master && git pull

提交代码

检查当前代码差异

git status

提交所有修改

git add .

提交本次修改备注(描述一下这次提交改了什么东西,方便版本追溯)

git commit -m 'hello world'

通常提交命令

git push

初始化仓库后的首次提交

git push -u origin master

清空本地缓存

通常用于新增.gitignore文件中的排除文件

git rm -r --cached .

本地生成GIT公钥

将git公钥添加到码云可以让每次代码同步时无需校验身份;

生成本地公钥

ssh-keygen -t rsa -C "xxxxx@xxxxx.com"

注意:这里的 xxxxx@xxxxx.com 只是生成的 sshkey 的名称,并不约束或要求具体命名为某个邮箱。现网的大部分教程均讲解的使用邮箱生成,其一开始的初衷仅仅是为了便于辨识所以使用的邮箱。
查看公钥

cat ~/.ssh/id_rsa.pub

可能会用到全局注册

git config --global user.email  "you@example.com" //邮箱为你的注册码云账号时绑定的邮箱
git config --global user.name  "Your Name"        //用户名为你码云注册时的登录名

公钥示例

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6SAt7JIuZRXECYH+WKvDjPb6Zf22L2p6U******

webhook(本地-码云-服务器代码同步)

简单讲就是再提交代码到远程仓库时,项目生成环境自动同步最新的代码版本(我认为的热传递),下面以linux系统为例展示下本地--码云--项目服务器代码同步
1.进入码云网站注册/登录账户,码云传送门
在这里插入图片描述
注册时有个邮箱,不是邮箱注册的到设置里面设置一下,最终要拿到邮箱(设置-邮箱管理)和登录名(码云个人主页@后面的内容),相关码云位置随着码云更新可能会变

2.新建码云的项目仓库,此处可以拿到一个仓库地址例如:git@gitee.com:******
在这里插入图片描述
3.本地电脑安装git,根据上面生成公钥的方法拿到本地公钥(此处不展示),添加到码云,使用基础命令测试本地与码云的代码同步
在这里插入图片描述
4.本地无误后,进入linux服务器切换www用户

su www

可能会出现无法切换的情况,如下图:
在这里插入图片描述
这是因为用户的shell,禁止了www用户登录,修改/etc/passwd文件,将“/sbin /nologin”改成“/bin/bash”。(如下图):
在这里插入图片描述
2.创建项目根目录

mkdir new-working-system

目录名根据自己的项目自行更改,创建好后如下:
在这里插入图片描述

3.进入项目目录中,初始化仓库(注意要用www用户),生成服务器公钥添加到码云(不介绍)

cd new-working-system/

4.初始化仓库与远程仓库建立链接

git init
git remote add origin git@gitee.com:******
git pull origin master

如何git提示没有指定分支

git branch --set-upstream-to=origin/master master

5.测试一下服务器与码云的git同步效果,无误后在项目根目录提交webhook文件(此处php展示)

$cmd="git fetch --all && git reset --hard origin/master && git pull";
$r= shell_exec($cmd);
print_r($r);

6.将webhook文件的服务器访问地址添加至码云仓库中,添加后,修改文件进行测试,查看是否成功实现三端同步即可。
在这里插入图片描述

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。