一、准备工作

1、Gogs

概念:
Gogs 是一款极易搭建的自助 Git 服务。
目的:
Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。

2、搭建前环境准备

1、docker环境,192.168.1.20
2、nginx服务器 192.168.1.10
3、mysql数据库5.7,192.168.1.20
4、电脑安装:intellij IDEA 开发人员编写代码工具
       git        开发人员将本地代码用git提交到git远程仓库。

二、Docker搭建gogs,并上传项目

1、安装gogs

mkdir -p /server/docker/gogs
docker run --name=gogs -p 10022:22 -p 10080:3000 \
-v /home/docker/server/gogs/data:/data \
-itd gogs/gogs:latest
chmod -R 777 /server/docker/gogs/data      #为运行gogs程序做的目录授权,下文会提到 
访问gogs页面:192.168.1.20:10080

gogs搭建完成,配置nginx域名访问: http://git.test.com

server {
server_name git.test.com;
listen 80; location / {
proxy_pass http://192.168.1.20:10080;
}
}

首次运行gogs安装程序需填写数据库信息,首先在mysql数据库创建gogs用户:  

登录mysql数据库:
create database gogs; #创建gogs数据库
create user gogs; #创建gogs用户
grant all privileges on gogs.* to gogs@'%' identified by 'gogs'; #为gogs用户授权

禁止用户注册并设置gogs页面的管理员账号:

注:上图的应用基本设置
应用名称:可以换成自定义名称
仓库根目录:使用默认就行了,默认/data/git/gogs-repositories。如果采用了数据卷映射,比如我这里因为/server/docker/gogs/data映射/data,需要给这个目录777权限,负责会创建失败。
域名:使用ssh时使用的域名或者IP
SSH 端口号:gogs启用ssh时使用的端口号,默认22端口,如果修改了这个端口号,那么在上面创建容器时要对应的将10022端口映射到修改的端口号,如果不启用ssh,则置空
HTTP 端口号:gogs应用启动的http端口,默认3000,如果修改了这个端口号,那么在上面创建容器时要对应的将10080端口映射到修改的端口号
应用 URL:即打开应用的url地址,因为这里采用了docker,所以我们要修改成宿主机的地址转发去访问,比如这里我的宿主机地址:192.168.1.20,它的10080端口会转发到容器的3000端口,所以这里填:http://192.168.1.20:10080/
日志路径:gogs的日志保存路径,默认就行了 ##安装程序运行完成后,会生成一个app.ini文件,在宿主机映射目录/server/docker/gogs/data/gogs/conf/app.ini,其中有相关的配置信息,尽量不要修改此文件,可能导致服务无法访问。

2、管理、配置gogs页面

创建仓库:

上传项目代码:根据提示操作(后文有相关的命令补充)

代码上传完毕,就可以进行仓库设置,下图圈住的这几个选项是比较常用的,可以自己设置一下。

gogs管理面板:可以创建用户、组织等,可以根据自己需求添加

三、相关知识补充

1、代码在本地仓库和远程仓库之间上传、下载的方法

(1)本地git工具: Git操作命令

在本地git使用001用户建一个项目:test
进行git全局配置:
git config --global user.name "001"
git config --global user.email "xxxxxxxxxxx@163.com"
创建一个仓库:
mkdir test
cd test
git init           #生成本地.git文件
touch README.md
git add mall #mall为需要上传的文件夹或文件
git commit -m "mall" #对上传文件的描述
git branch -a #查看所有分支
git branch slave #创建slave分支
git checkout slave #切换到slave分支
git remote add origin http://git.test.com/001/test.git  #关联远程仓库,远程仓库名字是origin
git push -u origin master #上传分支 重新上传文件
git rm -r 文件夹
git rm 文件
把你要重新上传的文件放入项目中 再提交一次
git add 要上传的文件
git commit -m "删除的某文件的提示"
git push -u origin master #提交到远程仓库 Git remote 修改源
git remote -v #查看clone下来的git源
git commit -m "Change repo." # 先把所有为保存的修改打包为一个commit
git remote remove origin # 删掉原来git源
git remote add origin [YOUR NEW .GIT URL] # 将新源地址写入本地版本库配置文件
git push -u origin master # 提交所有代码 git仓库项目代码迁移(将git.test.com的项目迁移到git.prod.com中)
mkdir gitspace
cd gitspace
git clone http://git.test.com/001/test.git    #git克隆远程项目
cd test
git remote -v     #查看git源
git branch -a     #查看项目所有分支
git remote rename origin old-origin
git remote add origin http://git.prod.com/001/test.git
git push -u origin --all
git push -u origin --tags 将远端分支全部变成本地分支
1、首先将项目的所有分支clone下来,并且变成本地分支。
mkdir some_repo
cd some_repo
git clone --bare http://git.test.com/001/test.git .git
git config --unset core.bare
git reset --hard 上面的意思是,首先随便建立一个文件夹some_repo,然后在里面只将xxx的.git文件夹拷贝下来!此时,some_repo里面还是没有任何repo的文件,只有一个隐藏文件夹.git。然后解除core.bare模式,然后再恢复所有的repo文件。此时,所有的xxx的所有的分支都是本地分支了!
2、将本地分支全部推到远端
git remote rename origin old_origin
git remote add origin http://git.prod.com/001/test.git
git push -u origin --all
git push -u origin --tags

(2)intellij IDEA软件使用:(其实也是使用git工具上传)

IDEA软件添加git:
打开 Setting 界面,点击Tools —— Terminal。 修改右侧菜单栏 Shell path ,将cmd.exe设置为你自己Git安装路径下的bin\git.exe(Tab name 改为Git,这个可改可不改) 再打开首页面最底下的一栏,Terminal出现git命令界面 下载代码:file——>new——>project from version control——>git——>输入存放代码地址: http://git.test.com/001/test.git
上传代码:打开首页——>open——>选中本地代码——>右击代码目录——>git——>add——>成功后再点击git,commit directory——>成功后点击git,push

还可以在IDEA界面直接点击Terminal出现git命令界面:输入git命令上传代码(更方便)

2、git上传代码遇到的错误

1、git上传代码卡住(Total 7072 (delta 2508), reused 6844 (delta 2376), pack-reused 0)

git config --global sendpack.sideband false
git config --local sendpack.sideband false
git config --global http.postBuffer 524288000
git config --global https.postbuffer 524288000
git config --global -l
git config --local -l
执行完这些命令后,再上传git push -u origin master,可能会稍微卡一会儿,然后就成功了。

2、修改保存在本地的git用户名密码

git config --global user.name "用户名"
git config --global user.password "密码"
git config --global -l #查看

3、上传代码报错:error: failed to push some refs to 'http://git.test.com/001/test.git'

#完整报错:
error: failed to push some refs to 'http://git.test.com/001/test.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
原因分析:这个问题是因为远程库与本地库不一致造成的
解决方法:可以把远程库同步到本地库,再把本地库推送到远程库
    git pull --rebase origin master
    git push -u origin master

4、上传代码报错:error: RPC failed; result=22, HTTP code = 413

#完整错误:
error: RPC failed; result=22, HTTP code = 413
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date
原因分析:上传文件太大,超过了最大限制
解决方法:nginx传输限制:(nginx.conf)
       client_max_body_size 400M;
     git传输限制:
       git config --global http.postBuffer 524288000
       git config --global https.postBuffer 524288000

愿你阳光开朗自信不羁,因为你从来都只是你。

最新文章

  1. iOS - 如何自动播放H5中的音频
  2. ARM的一些基本概念
  3. 【渗透测试学习平台】 web for pentester -3.XSS
  4. 将博客搬至51CTO
  5. 1. GDAL与OpenCV2.X数据转换(适合多光谱和高光谱等多通道的遥感影像)
  6. git创建与合并分支
  7. HDU 2544 最短路(初涉SPFA算法)
  8. mysql表名忽略大小写
  9. Spring定时器实现(二)
  10. 遇到502错误,invalid request block size 解决方法
  11. Gaussian Mixture Models and the EM algorithm汇总
  12. java中如何模拟真正的同时并发请求?
  13. 小程序movable-area置于顶层遮盖下方元素无法操作的解决方案
  14. HTML/CSS基础知识(三)
  15. 使用ggbio在R中制作弦图
  16. Spring Security构建Rest服务-0500-异步处理rest服务
  17. 【CSAPP笔记】9. 汇编语言——缓冲区溢出
  18. 可视化库-Matplotlib-条形图(第四天)
  19. 微信小程序ofo小黄车+thinkphp5.0打造全栈应用
  20. [实战]MVC5+EF6+MySql企业网盘实战(14)——逻辑重构

热门文章

  1. Nginx——Docker下安装部署
  2. ValueError: not enough values to unpack (expected 2, got 1)
  3. 004.kubernets对于pod的简单管理
  4. 电路调试检测维修总结积累 20181015 板子:3060-A
  5. 原型和原型链 prototype和proto的区别
  6. Archlinux常用软件推荐 更新于2021年4月
  7. maven项目多环境打包问题
  8. 用户自定义协议client/server代码示例
  9. Eclipse修改默认的语言编码设置,处理乱码
  10. P1123 取数游戏