使用git或TortoiseGit推送项目至gitlab
一、Wins安装Git+Trtoisegit工具实现版本克隆与推送
Git: https://git-scm.com/
Tortoisegit: https://tortoisegit.org/download/ 下载程序和语言包进行汉化操作
二、使用git客户端对项目进行克隆与推送操作
2.1. gitlab 创建一个账户并对该账户授权相应的项目权限(我这里创建账号为xliang,过程省略...)
2.2. 安装git ,默认配置安装
2.3. Git上传下载项目
创建一个目录,用于存储仓库(项目)【也可以右击创建版本库】。右击目录git bash here
先进行git global设置
$ git config --global user.name "xliang"
$ git config --global user.email "11922064@qq.com"
生成git客户端的秘钥
$ ssh-keygen
进入到c:/users/用户/.ssh/目录,编辑id_rsa.pub公钥,复制公钥信息至gitlab
(与TortoiseGit的配置一样,我分配的账号是xliang,登录gitlab,设置-->秘钥-->粘贴公钥信息保存)
克隆和推送的URL有两种方式:ssh和http
Git上传秘钥只能用于ssh方式传输,如果用http连接传输则提示输入该用户对应gitlab的账号和密码
举例:用http和ssh克隆项目:
用http传输,输入gitlab的账号和密码【我分配账户是xliang】
用ssh传输,用我们生成的公钥和私钥匹配
三、用git + tortoisdgit克隆和推送项目
优点:不用敲命令,窗口化操作
3.1 安装git,tortoisdgit
3.2 tortoisdgit生成秘钥
在开始菜单中找到Puttygen,用来生成ppk密钥,耗时很久
远程服务配置
打开Gitlab远程服务端网页http://xxxx.com,用自己的Git账号登录(我分配的账户是xliang)
在个人设置页面添加上一步生成sshKey公钥,如下图:
为什么要上传2次秘钥,git的秘钥和tortoisegit的秘钥【因为这是两个不同的工具,秘钥是分开的,TortoiseGit只是依赖于git客户端,git是命令行工具,tortoisegit是窗口化工具很方便】
用tortoisegit上传下载项目
创建几个文件,然后用tortoisegit上传,下载测试
添加URL,秘钥,点击 添加覆盖
推送有两个步骤:
- 提交,日志信息需填写,变更列表要选择
- 推送
点击,推送
成功后,关闭窗口,到gitlab看看更新的文件
四、 linux服务器安装git 克隆版本,完成版本的迭代升级操作
案例:web工作目录为/var/www/auto.com,我们可以自定目录/home/auto为git仓库
版本升级:
方法1:ln –s /home/auto /var/www/auto.com
--我在生产环境上做软链接至web站点的目录,好像apache2无法读取,具体原因还没分析,最后用方法2实现,采用rsync+inotify自动同步版本
把仓库软链接至web工作目录,每次升级clone最新版本即可
[因为gitlab有版本迭代性,如果版本回退,直接在服务器上clong上一个版本下来即可]
方法2:clone最新版本,重命名/var/www/auto.com做备份,然后cp仓库最新版本至web工作目录
需求:
使用gitlab控制版本发布
各服务器通过git 去拉去版本
[服务上的仓库可以软连接至web的工作目录]
[升级版本的时候,直接去拉版本即可]
服务器A,B,C,D...
1、 在gitlab上创建账号,每个账号对应一个服务器,把账号添加进对应项目里面
2、 服务器上生成公钥,用对应的账号登陆gitlab,然后添加公钥
3、 在服务器上创建一个目录(可以直接软链接到web工作目录)
4、 使用git 命令拉去版本
-------------------------------------->
ubuntu 系统示例:
1、安装git
# apt-get install git
2、服务器配置秘钥:
# ssh-keygen -t rsa
# pwd
/root/.ssh
# cat id_rsa.pub 把公钥复制添加到gitlab
3、 用gitlab创建分配的账号登陆,用户设置-->SSH密钥-添加公钥
4、 创建一个目录作于仓库,也可以软链接至服务器web的工作目录
# mkdir antu
# cd antu
# git clone ssh://git@gitlab.qiaokexing.com/cl_test/cl_test.git
Cloning into 'cl_test'...
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (9/9), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 9 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (9/9), done.
Checking connectivity... done.
# ls ---查看推送下来的版本
cl_test
# ls cl_test/ ---版本已经推送下来了
index.html read.txt test2.txt test3.txt test4.txt test.php
使用git或TortoiseGit推送项目至gitlab的更多相关文章
- TortoiseGit拉取或推送项目提示 HTTP Basic: Access denied fatal: Authentication failed.
TortoiseGit拉取或推送项目提示 HTTP Basic: Access denied fatal: Authentication failed. 大体意思是,HTTP基本认证失败,访问被拒 ...
- Git撤回已经推送(push)至远程仓库提交(commit)的版本
背景 所以,经常会遇到已经提交远程仓库,但是又不是我想要的版本,要撤下来. 回退版本一般使用git reset,又分为: # 不删除工作空间改动代码,撤销commit,不撤销git add . git ...
- git 创建标签推送远程分支
目录 git 创建标签推送远程分支 查看tag 创建tag 推送标签到远程仓库 删除tag git 创建标签推送远程分支 标签概念: tag, 对于迭代频繁的项目. 每一个标签可以理解为一个版本. 创 ...
- 使用 git 将代码推送到多个仓库
使用 git 将代码推送到多个仓库 起因 起初,在 GitHub 建了一个仓库,200+ 的 commits .后来(终于在眼泪中明白...误
- TortoiseGit推送失败的问题
网络的SSH修改为使用git默认的ssh客户端,而不是tortosieGit提供的客户端 修改成这样 下面的本机凭证修改为当前用户 然后直接使用右键->git同步 在推送url上填写远程的url ...
- Git学习系列之Git基本操作推送项目(图文详解)
前面博客 Git学习系列之Git基本操作提交项目(图文详解) 如果完成到一定程度,那么可以推送到远端在线仓库. 推送之前,请确保你已经设置了全局的 user.name 和 user.email, 如果 ...
- git推送项目到github并使用gitee做镜像仓库
2022最新版github入门教程,教你如何一步步创建自己的github账号并初始化仓库,然后使用git工具配置个人工作环境.配合gitee仓库,作为github的镜像仓库使用.这篇文章很基础,对萌新 ...
- GitLab-使用SSH的方式拉取和推送项目
场景 Docker Compose部署GitLab服务,搭建自己的代码托管平台(图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/det ...
- git 版本落后推送错误
http://114.215.90.144/student_association/student.git ! [rejected] master -> master (non- ...
随机推荐
- 在linux环境下mongodb的安装和启动
安装 下载mongodb的版本,两点注意 根据业界规则,偶数为稳定版,如1.6.X,奇数为开发版,如1.7.X 32bit的mongodb最大只能存放2G的数据,64bit就没有限制 到官网,选择合适 ...
- ROS进阶学习笔记(11)- Turtlebot Navigation and SLAM - ROSMapModify - ROS地图修改
ROS进阶学习笔记(11)- Turtlebot Navigation and SLAM - 2 - MapModify地图修改 We can use gmapping model to genera ...
- 2. instr用法
跟oracle中的instr用法一样: SQL> select count(*) from t where instr(title,‟oracle‟)>0; COUNT(*) ———- 5 ...
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
转自:http://blog.csdn.net/lmj623565791/article/details/38377229 ,本文出自[张鸿洋的博客] 很多人面试肯定都被问到过,请问Android中的 ...
- django之register_model(self, app_label, model):
前面在阅读apps_install源码时,一直不明白app的model是什么时候导入的,今天在看modelbase源码时,看到了new_class._prepare() new_class._meta ...
- 14.linux下复制粘贴
1. 在终端下: 复制命令:Ctrl + Shift + C 组合键. 粘贴命令:Ctrl + Shift + V 组合键. 2. 在控制台下: 复制命令:Ctrl + Insert 组合键 或 ...
- NetBeans 8以后版本无法连接git服务器
因为目前的git服务器的密钥加密基本都是256位的,而NetBeans带的jre环境的加密限制在基本的128位加密,从而导致无法和git服务器通信 解决办法 下载Java Cryptography E ...
- smarty获取php中的变量
{$smarty}保留变量不需要从PHP脚本中分配,是可以在模板中直接访问的数组类型变量,通常被用于访问一些特殊的模板变量.例如,直接在模板中访问页面请求变量.获取访问模板时的时间邮戳.直接访问PHP ...
- linux下通过sed命令直接修改文件内容
sed是实现对流的编辑.通常,我们使用sed可以实现内容的编辑后然后保存成另外的一个文件,如果正确的话,才写入到源文件.但是某些时候,我们需要直接修改文件,因为,保存文件到一个文件,然后再覆盖原文件的 ...
- (笨方法)利用stat函数实现ls -l filename
学习了一段时间的Linux了,但是我感觉我做不出来啥子,后头选择利用系统IO函数实现命令,先从ls走起吧.先来看看ls -l filename给我们显示了什么吧 : 可以看到,一共八项:文件类型.用户 ...