docker 搭建gogsgit
docker pull gogs/gogs
[root@itdev7001 ~]# docker pull gogs/gogs
Using default tag: latest
Trying to pull repository docker.io/gogs/gogs ...
latest: Pulling from docker.io/gogs/gogs
ddad3d7c1e96: Pull complete
98bfa715d475: Pull complete
41833e5090f7: Pull complete
0eaa2e62e844: Pull complete
099dafadbd3c: Pull complete
a65e863c4361: Pull complete
6f047877c3f9: Pull complete
Digest: sha256:1c42233010268ef058cd98ca42e4940d20ff2276f01a7db83f9114b1dd8e17ed
Status: Downloaded newer image for docker.io/gogs/gogs:latest
查看镜像
[root@iep-02 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/redis latest 08502081bff6 2 weeks ago 105 MB
docker.io/gogs/gogs 0.12 4075c4a42f12 9 months ago 92.6 MB
[root@iep-02 ~]#
安装镜像
docker run -d --name=gogs --restart=always -p 2222:22 -p 9030:3000 -v /usr/local/docker/gogs:/data gogs/gogs
打卡端口
firewall-cmd --zone=public --add-port=9030/tcp --permanent
firewall-cmd --zone=public --add-port=2222/tcp --permanent
firewall-cmd --reload
查看所有容器
# docker ps -a
[root@iep-02 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
630aa3447f9b gogs/gogs:0.12 "/app/gogs/docker/..." 2 minutes ago Exited (2) 2 minutes ago gogs
aa1c2b3a996a redis "docker-entrypoint..." 22 hours ago Up 22 hours 0.0.0.0:6379->6379/tcp redis
[root@iep-02 ~]#
查看日志
[root@iep-02 ~]# docker logs --tail 0 -f 8fdadbd21cf44f6f68f7ea4cae039550de8d3f7577b42c60e57401cb8b4d1931
usermod: no changes
Jul 9 09:52:16 syslogd started: BusyBox v1.31.1
Jul 9 09:52:16 sshd[32]: Server listening on :: port 22.
Jul 9 09:52:16 sshd[32]: Server listening on 0.0.0.0 port 22.
2021/07/09 09:52:16 [ WARN] Custom config "/data/gogs/conf/app.ini" not found. Ignore this warning if you're running for the first time
2021/07/09 09:52:16 [TRACE] Log mode: Console (Trace)
2021/07/09 09:52:16 [ INFO] Gogs 0.13.0+dev
2021/07/09 09:52:16 [TRACE] Work directory: /app/gogs
2021/07/09 09:52:16 [TRACE] Custom path: /data/gogs
2021/07/09 09:52:16 [TRACE] Custom config: /data/gogs/conf/app.ini
2021/07/09 09:52:16 [TRACE] Log path: /app/gogs/log
2021/07/09 09:52:16 [TRACE] Build time: 2021-05-19 07:16:50 UTC
2021/07/09 09:52:16 [TRACE] Build commit: ba8be9489e6d959fa9005fc7d38bf62562580d23
2021/07/09 09:52:16 [ INFO] Run mode: Development
2021/07/09 09:52:16 [ INFO] Listen on http://0.0.0.0:3000
创建Mysql用户
create database if not exists gogs default charset utf8 collate utf8_general_ci;
CREATE USER 'gogs'@'%' IDENTIFIED BY 'yourpassword';
# 登录授权
[root@itdev9903 ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 200
Server version: 5.7.30 MySQL Community Server (GPL)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show grants for 'gogs'@'%';
+----------------------------------+
| Grants for gogs@% |
+----------------------------------+
| GRANT USAGE ON *.* TO 'gogs'@'%' |
+----------------------------------+
1 row in set (0.00 sec)
mysql> grant insert,select,update,delete,create,drop,alter,index on gogs.* to 'gogs'@'%';
Query OK, 0 rows affected (0.00 sec)
mysql>FLUSH PRIVILEGES;
回收所有权限
revoke all privileges on gogs.* from 'gogs'@'%';
show grants for 'gogs'@'%';
附录:
1. git 常用命令
# 配置
git config --global user.name "Your Name Comes Here"
git config --global user.email you@yourdomain.example.com
# 查看
git --version
git status
# 初始仓库
git init
# 添加至暂存区
git add ./file (将需要提交的提交到暂存区)
# 提交本地仓库
git commit - m 'feat: 注释' (提交到本地)
git commit --amend
# 快捷提交
git commit -am 'feat: 注释'
# 直接回退
git log --oneline
git checkout filename
# 从暂存区回退
git reset HEAD filename
git checkout -- filename
# 从本地仓回退
git log --oneline
git reset --hard XXX
# 从本地仓重置回退
git reflog
git reset --hard XXX
# 查看分支
git branch 查看本地所有分支
git branch -a 查看所有的分支
git branch -r 查看远程所有分支
# 创建分支
git branch 分支名称
# 切换分支
git checkout 分支名称
# 创建并切换
git checkout -b 分支名称
# 合并分支
git merge 目标分支 -m "描述"
git rebase 目标分支
# 将本地的Test分支推送到远端的master分支
git push origin Test:master
# 删除分支
git branch -d 分支
# 删除远程分支
git push origin --delete 分支
# 查看tag
git tag
# 查看详情
git show tag名称
# 创建tag
git tag -a "v1.0" -m "描述"
git tag -a "v1.0" 标识码 -m "描述"
# 删除tag
git tag -d 标签名
# 查看远程仓库
git remote [-v]
# 删除关联
git remote remove origin
# 推送tag
git push origin --tags
git push tag名称
# 删除远程tag
git push origin --delete tag名称
# 获取远程tag
git fetch origin tag V1.2
# 拉取远程代码
git pull <远程主机名> <远程分支名>:<本地分支名>
# 一、开发分支(develop)上的代码达到上线的标准后,要合并到 master 分支
git checkout develop
git pull
git checkout master
git merge develop
git push -u origin master
# 二、当master代码改动了,需要更新开发分支(develop)上的代码
git checkout master
git pull
git checkout develop
git merge master
git push -u origin develop
更多参考请查阅:常用 Git 命令清单 - 阮一峰的网络日志 (ruanyifeng.com)
2 git 提交规范
-
git add 时候尽量不使用
git add .
这样很容易把一些不必要的文件给提交上去了。 -
git commit -m 备注规范: git commit -m "<font color='red'>注释前缀:备注内容</font>"
注释前缀 | 含义 | 样例 |
---|---|---|
feat | 新功能(feature) | git commit -m "feat:导入主干" |
fix | 修补 bug | git commit -m "fix: 修复bug" |
docs | 文档(documentation) | git commit -m "docs:添加文档" |
style | 格式(不影响代码运行的变动) | git commit -m "style:添加样式" |
refactor | 重构(即不是新增功能,也不是修改 bug 的代码变动) | git commit -m "refactor:重构代码" |
test | 增加测试 | git commit -m "test:添加测试代码" |
chore | 构建过程或辅助工具的变动 | git commit -m "chore:修改构建顺序" |
- git push 时候不允许 直接提交主分支 这样可能会污染主分支。
3. Git-SVN
yum -y install git-svn
# 下载一个 SVN 项目和它的整个代码历史,并初始化为 Git 代码库
$ git svn clone -s [repository]
# 查看当前版本库情况
$ git svn info
# 取回远程仓库所有分支的变化
$ git svn fetch
# 取回远程仓库当前分支的变化,并与本地分支变基合并
$ git svn rebase
# 上传当前分支的本地仓库到远程仓库
$ git svn dcommit
# 拉取新分支,并提交到远程仓库
$ svn copy [remote_branch] [new_remote_branch] -m [message]
# 创建远程分支对应的本地分支
$ git checkout -b [local_branch] [remote_branch]
-
svn 命令
yum install subversion -y
命令 功能 使用格式 checkout 检出 svn co URL up 更新到当前URL的末端 svn up switch 更新到某一tag/branch svn switch (tag/分支)URL add 增加 svn add 文件名 rm 删除文件 svn rm 文件名 删除目录 svn rm 目录名 diff 与base版本(最后检出或者更新到的版本)对比 svn diff diff 与版本库中最新版本对比 svn diff -r head diff 当前工作副本,两个版本之间对比 svn diff -r reversion1:reversion2 diff 版本库中任意两个tag做对比 svn diff (tag1)URL (tag2)URL ci 提交 svn ci -m "commit log" log 查看当前工作副本log svn log log log 只查看指定版本的log svn log -r log 打印log所有附加信息 svn log -v log 查看当前tag/branch版本详情 svn log --stop-on-copy -v info 查看当前工作副本所在URL svn info status 查看工作副本的状态 svn st 查看文件的taglist svn命令不支持,可执行cs taglist tag 新增tag svn cp . (tag)URL tag tag 删除tag svn rm (tag)URL -m "commit log" tag 覆盖已经存在的tag 不支持 分支开发 创建branch svn cp (基线版本)URL (分支)URL -m "commit log" 分支开发 删除branch svn rm (分支)URL -m "commit log" 分支开发 同步 svn co (主干)URL 分支开发 同步 cd ~/wc 分支开发 同步 svn merge (主干)URL (待同步tag)URL 分支开发 同步 svn ci -m "commit log" 分支开发 同步 svn cp (主干)URL (以_PD_BL_MAIN结尾的tag)URL -m"commit log" 分支开发 合并 svn co (合并目标)URL 分支开发 合并 cd ~/wc 分支开发 合并 svn merge (基线版本tag)URL (上线tag)URL 分支开发 合并 svn ci -m "commit log" 分支开发 合并 svn cp (合并目标)URL (上线tag_MERGE_的tag对应)URL -m"commit log" - find / -name .subversion
4. Git/SVN并存
- 首先从svn仓库克隆代码
git svn int http://ip/svn/demo/trunk demo
git svn fetch -r HEAD12
- 添加git仓库地址
cd demo
git remote add git http://ip/path/demo.git12
- 获取git仓库的分支
git fetch git master #获取git仓库的master分支
git fetch git 1.0 #获取git仓库的1.0分支
git fetch git #获取所有git分支123
- 此时本地git的分支情况
➜ demo git:(master) git branch -a
* master #默认对应svn
remotes/git-svn #svn分支
remotes/git/1.0 #远程git的1.0分支
remotes/git/master #远程git的master分支12345
- 将git代码合并到svn分支
git merge git-master1
- 从更新并提交
# 从SVN同步
git svn rebase
# 提交SVN仓库
git svn dcommit
# 提交Git仓库
git push -u origin master
Git Contribution submission specification
- reference vue specification (Angular)
-
feat
Add new features -
fix
Fix the problem/BUG -
style
The code style is related and does not affect the running result -
perf
Optimization/performance improvement -
refactor
Refactor -
revert
Undo edit -
test
Test related -
docs
Documentation/notes -
chore
Dependency update/scaffolding configuration modification etc. -
workflow
Workflow improvements -
ci
Continuous integration -
types
Type definition file changes -
wip
In development
-
常用全局配置
# 全局提交用户名与邮箱
git config --global user.name "Yuchen Deng"
git config --global user.email "邮箱名@gmail.com"
# gitk乱码处理
git config --global gui.encoding utf-8
下载项目:git clone <仓库地址>如果要下载非master的某分支代码:git clone -b <分支名> <仓库地址>查看当前你所在分支:git branch (查看你当前的分支,*标识的就是你当前的分支)
创建和切换分支:git chaeckout -b <你的feature分支名称>
添加修改到缓冲区:git add .
检查项目状态:git status
描述并提交修改内容描述:git commit -m "<提交的内容描述>"
把项目提交到远程仓库:git push origin <你的feature分支名称>
如果你是管理员权限还需要这么做:
合并分支到master分支:git merge <feature分支>
删除分支:git branch -d <feature分支>
-
切换仓库
# 查看 git remote -v # 删除 git remote remove origin # 更改 git remote add origin xxxxxxx # 只改地址 git remote set-url origin
-
暂存文件
git stash list // 查看stash列表 1、添加改动到stash git stash save "messeag" git stash save -m "messeag" git stash save -u "messeag" git stash save -a "messeag" -a表示all,是不仅仅把新加入的代码文件放入暂存区,还会把用.gitignore忽略的文件放入暂存区。如果想不影响被忽略的文件,那就要用-u,表示untracked files。 2、恢复改动 git stash list查看stash列表,从中选择你想要pop的stash,运行命令 git stash pop stash@{id} 或者 git stash apply stash@{id} 即可 3、删除stash git stash drop <stash@{id}> 如果不加stash编号,默认的就是删除最新的,也就是编号为0的那个,加编号就是删除指定编号的stash。 git stash clear 是清除所有stash 4、git stash pop 与 git stash apply <stash@{id}> 的区别。 git stash pop stash@{id}命令会在执行后将对应的stash id 从stash list里删除,而 git stash apply stash@{id} 命令则会继续保存stash id 5. 查看指定stash的diff git stash show git stash show stash@{id} 补充: 注:[]方括号中内容为可选,[<stash>]里面的stash代表进度的编号形如:stash@{0}, <>尖括号内的必填 git stash 对当前的暂存区和工作区状态进行保存。 git stash list 列出所有保存的进度列表。 git stash pop [--index] [<stash>] 恢复工作进度 git stash apply [--index] [<stash>] 不删除已恢复的进度,其他同git stash pop git stash drop [<stash>] 删除某一个进度,默认删除最新进度 git stash clear 删除所有进度 git stash branch <branchname> <stash> 基于进度创建分支
基本规范
固定 master、release、develop 为长期分支。
合并流程:feature(对应日常开发)->develop(对应开发环境)->release(对应测试环境)->master->tag(对应生产环境,生产打TAG)
tag格式: release-v1.0.1.20220126.01
tag解析:release-三位版本号.六位日期.两位补丁版本(当日没发布一次升+1,最高99次)。
命令执行:git tag -a 'release-v1.0.1.20220126.01' -m '描述'
网友评论