Git部署

简介:

一 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 最新版)
29 2
|
5月前
|
安全 网络安全 开发工具
Git的进阶操作,在idea中部署gie
Git的进阶操作,在idea中部署gie
|
10月前
|
开发工具 git
部署hexo遇到报错ERROR Deployer not found: git的解决办法
部署hexo遇到报错ERROR Deployer not found: git的解决办法
165 0
|
JavaScript jenkins 应用服务中间件
nginx+jenkins部署git前端项目
从 tomcat 到 github Page,再到 nginx。技术在变化,但搭建个人站点的执念没有中断。 与你同行!
|
网络安全 开发工具 数据安全/隐私保护
8分钟 git 一键部署流程、以及常用命令汇总
还在等什么,快来一起讨论关注吧,公众号【八点半技术站】,欢迎加入社群
8分钟 git 一键部署流程、以及常用命令汇总
|
JavaScript Java 关系型数据库
Mac不会用?玩转brew,部署web开发环境【jdk、git、msyql、maven、node】全家桶,前后端覆盖
Mac不会用?玩转brew,部署web开发环境【jdk、git、msyql、maven、node】全家桶,前后端覆盖
909 0
Mac不会用?玩转brew,部署web开发环境【jdk、git、msyql、maven、node】全家桶,前后端覆盖
|
数据可视化 安全 Unix
【Git|GitHub|SSH|Sourcetree 下篇】GitHub|Sourcetree|SSH部署及Git-flow工作流
GitHub|Sourcetree|SSH快速部署、git-flow工作流、Remote Repository的克隆和推送
224 0
【Git|GitHub|SSH|Sourcetree 下篇】GitHub|Sourcetree|SSH部署及Git-flow工作流
|
监控 jenkins Java
Jenkins部署及使用(安装maven配置阿里云镜像、git工具)
Jenkins部署及使用(安装maven配置阿里云镜像、git工具)
Jenkins部署及使用(安装maven配置阿里云镜像、git工具)
|
缓存 网络安全 开发工具
【Ruby on Rails全栈课程】5.3 项目上线--git部署项目
1、git分布式版本控制系统是什么? 现在本地电脑1有一套data_system的代码,如果想把这套代码放到云服务器上,应该怎么做呢? 最简单的做法是直接将本地电脑1上的代码拷贝到服务器上。 但是我们拷贝完成后发现了一个bug1,在本地电脑1的代码中修复了之后。需要与云服务器上的代码同步,还是要将本地电脑1的代码拷贝到服务器上吗? 团队的另一个人修改了bug2,没有修改bug1,他如果将自己本地电脑2的代码拷贝到服务器上,就会将你刚刚修改的bug1代码覆盖掉。 所以我们现在需要一个第三方先将代码处理整合一下,将我们自己的代码与团队其他人的代码整合起来,再通过git pull操作将整合后
151 0
【Ruby on Rails全栈课程】5.3 项目上线--git部署项目
|
开发工具 git
Git版本控制系统安装部署(二)
2.git提交目录文件至本地仓库 首先创建git版本库,这个目录里面的所有文件都可以被git管理起来,每个文件的修改、删除、git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以还原 2.1.创建git目录并创建文件
116 0
Git版本控制系统安装部署(二)

相关实验场景

更多