Git部署

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

一 git 配置多个ssh-key

生成私钥和公钥

ssh-keygen -t rsa -C "sgfoot@xxx.com" -f ~/.ssh/sgfoot-rsa
#-t 选择不同加密方式
#-C 您的邮箱
#-f 存储位置
#~/..ssh 目标下多了两个文件sgfoot-rsa,sgfoot-rsa.pub

添加私钥

ssh-add sgfoot-rsa
#如果报:Could not open a connection to your authentication agent
可以使用ssh-agent bash解决以上错误
#可以使用ssh-add -l查看私钥列表
#可以使用ssh-add -D删除私钥列表

创建config文件

# github
    Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/sgfoot-rsa
  1. Host和HostName填写git服务器的域名。
  2. IdentityFile指定私钥的路径。

提供公钥给第三方

cat sgfoot_rsa.pub

测试

ssh -T git@github.com

 

二  git使用方法

初始化

git init (对于新建文件夹,第一步需要初始化)

克隆一份项目

git clone https://localhost/admin.git

添加文件至工作区

git add --all #添加所有文件
git add read.me #添加指定文件
git add . 添加当前目录下的所有文件和子目录
git add -u <省略则当前目录> 所有tracked文件中被修改过或已删除文件的信息添加到索引库。它不会处理untracted的文件
git add -A 所有tracked文件中被修改过或已删除文件和所有untracted的文件信息添加到索引库。

提交到仓库,并添空工作区

git commit -m “注释语句”
git commit -am “添加注释” #文件之前已经提交过,但这次的改动还没有进stage

添加远程仓库github

git remote add origin https://localhost/admin.git(需要关联的git地址)
#origin 是一个名字

提交到远程仓库

git push origin master
#origin 是远程名称
#master 是分支名称

上传代码到GitHub远程仓库

git push -u origin master #可能需要输入帐号和密码

状态,版本对比,编辑,撤销,版本回退,删除

查看状态

git status

对比版本

git diff HEAD -- readme.txt 
#HEAD代表当前仓库里的版本号
-- readme.txt是当前工作区的版本

丢弃工作区里的文件

git checkout -- readme.txt
#一定要加-- 不然就是分支的切换了

查看日志

git log
git log --pretty=oneline
先使用git reflog 查看之前的log

版本回退

#退回上一个版本,HEAD加一个^,退回上2个就加2个^
git reset --hard HEAD^
git reset --hard HEAD~100 #退回前100个版本
#直接退回指定版本(git log显示的md5字符串,可以是前面5位短的)
git reset --hard 3628164
#实现向未来版本回退
先使用git reflog 查看之前的log
git rest --hard xxxxx

删除 & 撤销

git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态
git clean -n 列出将要删除的目录和文件
git clean -df #d 代表目录, f代表文件

更新git

git pull

分支

新建一个分支

git branck developer

切换指定分支

git checkout developer

新建并切换分支

git checkout -b dev 
#相当上面两个命令

合并分支

git checkout master
git merge developer
#必须先切换到master分支,然后再合并developer分支到master上

解决冲突

git status 
#both modified file 表示这个文件有冲突
#Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容
#HEAD下面的内容是当前分支的内容 
git add file
git commit -m "解决冲突" 
若分支上出现rebase 字符
git rebase --continue
git rebase --abort
#查看整个git解决分支的路线
git log --graph --pretty=oneline --abbrev-commit

使用分支策略

  • master做为稳定分支,仅用于发布使用,不在此分支上做开发
  • 创建一个dev开发分支,用于团队开发使用的次分支,每个人再创建一个分支做为自己独立开发的分支,时不时可以合并到dev分支上.
  • 自已本地创建bug分支
  • 还可以创建小队的分支
  • 团队分支效果图
    5ab4b2ab9cce8_5ab4b2ab.png

忽略文件

#只需要新建.gitignore文件即可.里面填内容

配置别名

让git st 代替git status
git config --global alias.st status
$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch
git config --global alias.unstage 'reset HEAD'
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"

命令列表

基础命令 说明
git init 初使一个目录为git项目,会生成一个.git目录
git clone url 克隆远程项目
git add file 添加文件至暂存区
git add -u <默认当前目录> 所有tracked文件中被修改过或已删除文件的信息添加到索引库。它不会处理untracted的文件
git add -A <默认当前目录> 所有tracked文件中被修改过或已删除文件和所有untracted的文件信息添加到索引库。
git commit -m “备注不可少” 提交到仓库
git status 查看当前状态
git log —pretty=oneline —abbrev-commit 列出最短的日志
处理命令 说明
git log 查看提交的日志
git reflog 查看未来和过去的日志
git reset HEAD^ 退回上一个版本
git reset HEAD~10 退回上10个版本
git reset hard [log id] 退回指定版本
git rm file 删除文件,需要提交
分支命令 说明
git branch 查看所有分支
git branch -d 分支名 删除分支
git branch -D [name] 强行删除分支
git branch -r 查看远程分支情况
git branch -a 查看所有分支情况
git checkout 分支名 切换分支
git checkout -b 分支名 创建分支并切换此分支
git merge 需要合并的分支名 合并分支
git push origin :dev 删除远程分支dev
远程仓库命令 说明
git remote add origin url 添加远程库,origin是名称,url是远程目标
git remote 查看远程库列表
git remote -v 查看远程库详细
git push -u origin master 第一次使用,-u 将本地所有内容推到远程库上
git push origin master 将本地所有内容推到远程库上
git push origin dev 将本地的dev分支推到线上去
git pull origin master 从远程库里拉取资源
git checkout -b dev origin/dev 必须创建远程origin的dev分支到本地
git branch —set-upstream branch-name origin/branch-name 如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建
标签命令 说明
git tag 查看标签列表
git tag v1.0 在当前分支下最新的版本上打了一个v1.0 标签
git show v1.0 查看标签信息
git tag -a v0.1 -m “version 0.1 released” 3628164 在指定的logid上打上标签
git tag -s v0.2 -m “signed version 0.2 released” fec145a 用私钥签名一个标签
git tag -d v1.0 删除v1.0标签
git push origin tagname 推送标签
其它命令 说明
git config —global color.ui true 打上颜色
本文来自云栖社区合作伙伴“开源中国”
本文作者: Ocean_K 

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
5月前
|
测试技术 持续交付 开发工具
《Git 简易速速上手小册》第6章:Git 在持续集成/持续部署(CI/CD)中的应用(2024 最新版)
《Git 简易速速上手小册》第6章:Git 在持续集成/持续部署(CI/CD)中的应用(2024 最新版)
102 2
|
5月前
|
JavaScript 数据可视化 网络安全
Hexo博客重新部署与Git配置
重装电脑后,作者更新了Hexo与NexT主题。首先,安装了Node.js和git,配置了git的用户信息,并生成SSH密钥。因旧版本导致问题,作者决定重新部署。按照步骤安装Hexo,选择了NexT主题,并安装了多个插件。遇到错误时,通过查阅资料解决了问题。此外,作者自定义了页脚、侧边栏内容,包括访客统计、词云、建站时间等,并更换了背景图,添加了Daovoice聊天界面。参考了多篇教程解决过程中遇到的各类问题。
57 6
|
2月前
|
存储 Linux 开发工具
【Azure App Service】本地Git部署Python Flask应用上云(Azure App Service For Linux)关键错误
【Azure App Service】本地Git部署Python Flask应用上云(Azure App Service For Linux)关键错误
|
2月前
|
Linux 开发工具 git
【应用服务 App Service】App Service使用Git部署时,遇见500错误
【应用服务 App Service】App Service使用Git部署时,遇见500错误
|
2月前
|
jenkins 持续交付 开发工具
"引爆效率革命!Docker+Jenkins+GIT+Tomcat:解锁持续集成魔法,一键部署Java Web应用的梦幻之旅!"
【8月更文挑战第9天】随着软件开发复杂度的增加,自动化变得至关重要。本文通过实例展示如何结合Docker、Jenkins、Git与Tomcat建立高效的持续集成(CI)流程。Docker确保应用环境一致性;Jenkins自动化处理构建、测试和部署;Git管理源代码版本;Tomcat部署Web应用。在Jenkins中配置Git插件并设置项目,集成Docker构建Tomcat应用镜像并运行容器。此外,通过自动化测试、代码质量检查、环境隔离和日志监控确保CI流程顺畅,从而显著提高开发效率和软件质量。
62 3
|
2月前
|
开发工具 git
【Azure 应用服务】App Service 开启了私有终结点(Private Endpoint)模式后,如何来实现公网Git部署呢?
【Azure 应用服务】App Service 开启了私有终结点(Private Endpoint)模式后,如何来实现公网Git部署呢?
|
2月前
|
Java 开发工具 git
【Azure 应用服务】本地Git部署Java项目到App Server,访问无效的原因
【Azure 应用服务】本地Git部署Java项目到App Server,访问无效的原因
|
11月前
|
安全 网络安全 开发工具
Git的进阶操作,在idea中部署gie
Git的进阶操作,在idea中部署gie
|
开发工具 git
部署hexo遇到报错ERROR Deployer not found: git的解决办法
部署hexo遇到报错ERROR Deployer not found: git的解决办法
418 0
|
JavaScript jenkins 应用服务中间件
nginx+jenkins部署git前端项目
从 tomcat 到 github Page,再到 nginx。技术在变化,但搭建个人站点的执念没有中断。 与你同行!