您现在的位置是:首页 >其他 >Git常用操作:基础命令、生成公钥、webhook同步网站首页其他
Git常用操作:基础命令、生成公钥、webhook同步
下载安装GIT
此处只介绍windows系统下的安装,linux一般都是自带git(自行百度)
下载Git 官方地址为:https://git-scm.com/download/wi
下载好对应的安装程序打开一路点击下一步即可,最终鼠标右侧菜单栏出现对应部分即为安装成功
- 具体详细的安装教程请看https://www.cnblogs.com/ximiaomiao/p/7140456.html
- 如何官网下载速度太慢请看https://blog.csdn.net/weixin_44198965/article/details/99686507
基础命令
记录下常用的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文件的服务器访问地址添加至码云仓库中,添加后,修改文件进行测试,查看是否成功实现三端同步即可。