GIT简单应用

网站资源

GIT安装

网上很多,可参考:https://www.cnblogs.com/kevinzhushrek/p/16092144.html

Intellij idea下配置GIT

File - settings 搜索git,Path to Git executable中选择已安装的GIT的可执行文件,点击“Test”可进行测试验证

开发规范

语义标签:https://semver.org/lang/zh-CN/

创建项目时(一般是服务型项目,工具型或辅助型项目可以简单一些),会针对不同环境创建三个常设分支:
1.develop:开发环境的稳定分支,公共开发环境基于该分支构建。
2.pre-release:测试环境的稳定分支,测试环境基于该分支构建。
3.master:生产环境的稳定分支,生产环境基于该分支构建。仅用来发布新版本,除了从pre-release或生产环境Bug修复分支进行merge,不接受任何其它修改

平时开发工作中,会根据需要由开发人员创建两类临时分支:
1.功能(feature)分支:为了开发某个特定功能,从develop分支上面分出来的。开发完成后,要merge到develop分支。功能分支的命名,可以采用feature-的形式命名(为任务单号)
2.Bug修复(fixbug)分支:为了修复某个bug,从常设分支上面分出来的。修复完成后,再merge到对应的分支。Bug修复分支的命名,可以采用fixbug-的形式命名(为bug单号)

正常开发流程
1.从develop分支切出一个新分支,根据是功能还是bug,命名为feature-* 或 fixbug-*。
2.开发者完成开发,提交分支到远程仓库。
3.开发者发起merge请求,将新分支请求merge到develop分支,并提醒code reviewer进行review
4.code reviewer对代码review之后,若无问题,则接受merge请求,新分支merge到develop分支,同时可删除新建分支;若有问题,则不能进行merge,可close该请求,同时通知开发者在新分支上进行相应调整。调整完后提交代码重复review流程。
5.转测时,直接从当前develop分支merge到pre-release分支,重新构建测试环境完成转测。
6.测试完成后,从pre-release分支merge到master分支,基于master分支构建生产环境完成上线。并对master分支打tag,tag名可根据版本发布规范定义。

流程示意图如下

img

并行开发测试环境Bug修复流程
并行开发(即前一个版本已经转测但未上线,后一个版本又已在开发中并部分合并到了develop分支)过程中,转测后测试环境发现的bug需要修复,但是develop分支此时又有新内容且该部分内容目前不计划转测,可以pre-release切出一个bug修复分支。完成之后需要同时merge到pre-release分支与develop分支。merge时参考“正常开发流程”。

流程示意图如下

img

生产环境Bug修复流程
生产环境的Bug分两种情况:
1.紧急Bug:严重影响用户使用的为紧急Bug,需立即进行修复。如关键业务流程存在问题,影响用户正常的业务行为。
2.非紧急Bug或优化:非关键业务流程问题,仅影响用户使用体验,或出现频率较小等,为非紧急Bug,可规划到后续版本进行修复。

非紧急Bug修复参考“正常开发流程”。
紧急Bug修复,需要从master分支切出一个bug修复分支,完成之后需要同时merge到master分支与develop分支(如果需要测试介入验证,则可先merge到pre-release分支,验证通过后再merge到master分支上线)。merge时参考“正常开发流程”。

流程示意图如下

img

常用命令

前提条件:已有GIT账号
备注:git bash终端出现end,按q键可退出
命令Command 描述Descriptio
git config --local --list / git config --local -l 查看仓库配置信息
git config --global --list / git config --global -l 查看用户配置信息
git config --system --list / git config --system-l 查看系统配置信息
git config --list / git config -l 查看全部配置信息
git config configName 查看配置configName属性的值
git config --add configName configValue 添加配置属性值,configName必须要包含节点,如user.name
git config configName configValue 修改配置属性值,configName为已存在的属性,configValue为要修改的值
git config --unset configName 删除配置属性
git init 通过命令初始化代码库
git clone [url] 通过克隆地址初始化代码库
git clone -b 远程分支名 [url] 通过指定远程分支名克隆地址初始化代码库
git remote 查看远程仓库信息
git remote -v 查看远程仓库详细信息
git pull origin <远程分支名>:<本地分支名> 将远程主机 origin 的分支拉取过来,与本地的分支合并;
如果远程分支是与当前分支合并,则冒号后面的部分可以省略
等同于:
先 git fetch origin <远程分支>【从远程分支更定代码但并未更新到本地分支】
再 git merge origin/<远程分支>【将远程分支与本地分支合并】
git add [file1] [file2] ... 添加一个或多个文件到暂存区
git add [dir] 添加指定目录到暂存区,包括子目录
git add . 添加当前目录下的所有文件到暂存区
git commit -m [message] 提交暂存区到本地仓库中
git commit [file1] [file2] ... -m [message] 提交暂存区的指定文件到仓库区
git commit -a -m [message] 设置修改文件后不需要执行 git add 命令,直接提交
git branch 查看所有分支及当前所在分支
git branch -r 查看远程分支
git branch -a 查看所有分支,包括本地和远程
git branch branchName 创建新的分支
git branch -d branchName 删除指定分支
git checkout branchName 切换到指定分支
git checkout -b branchName 新建分支并切换到改分支
git checkout -b dev(本地分支名) origin/dev(远程分支名) 远程拉取分支并创建本地分支
git checkout . 将该分支下所有的修改撤销
git checkout -- filename 将该分支下指定文件的修改撤销
git status 显示有变更的文件,前提是未提交
git diff [file] 显示工作区指定文件的修改差异
git diff 显示工作区所有有修改的文件和修改内容
git merge [branch] 合并指定分支到当前分支
git push origin <远程分支> 把当前分支(develop或master)推送到远程对应(develop或master)分支
git push –u origin <远程分支> 把当前分支(develop或master)推送到远程对应(develop或master)分支
第一次推送要用-u 以后不需要
git push origin --delete <远程分支> 删除远程分支
cat [file] 查看指定文件的内容
rm [file] 删除工作区文件
git rm [file] 将文件从暂存区和工作区中删除
git rm -f [file] 强行从暂存区和工作区中删除指定文件【如:删除之前文件已经修改过并且已经放到暂存区域】
git rm --cached [file] 停止追踪指定文件,但该文件会保留在工作区
git mv [file] [newfile] 用于移动或重命名一个文件、目录或软连接
git log 查看所有的commit提交记录
git log --oneline 显示commit hash 前7个字符串和commit message说明
git log -p 输出每个commit具体修改的内容,输出的形式以diff的形式给出
git log --author [username] 根据指定的账号过滤commit
git log -num 限定log输出,num表示要输出的数量
git log --after / --before '日期' 显示指定日期之前或之后的log,日期格式如7-1-2021
git log --pretty=oneline 查看当前分支的提交历史 里面包含 commit id
git show 同git log -p输出类似,只不过它只显示一个commit的内容,如果不指定commit hash, 它默认输出HEAD指向commit的内容
git shortlog 用来输出汇总信息,以作者进行分类
git push origin [tagName] 推送到远程仓库
git push origin --tags 存在很多未推送的本地标签,一次全部推送
git tag -a [tagName] [commitId] 根据指定commit创建标签,此时需要编辑标签内容,Linux操作命令编辑保存即可
不加commitId,就是直接创建本地标签
git show [tagName] 查看本地某个 tag 的详细信息
git tag 或者 git tag -l 查看本地所有 tag
git ls-remote --tags origin 查看远程所有 tag
git tag -d [tagName] 删除本地tag
git push origin :refs/tags/[tagName] 删除远程tag
git checkout -b [tagName] tag检出
git tag -a [tagName] -m "xxx..." 指定标签信息,前提是之前未添加
git checkout [tagName] 切换标签
git reset [file] 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
git reset --hard 重置暂存区与工作区,与上一次commit保持一致
git reset --hard <目标版本号> 回退到某个版本回退点之前的所有信息,目标版本号可通过git log查看
git reset HEAD^ 回退所有内容到上一个版本
git reset HEAD^ [file] 回退指定文件的版本到上一个版本
git reset <目标版本号> 回退到指定版本
git reset --soft HEAD~3 --soft 参数用于回退到某个版本,回退上上上一个版本
git reset –hard HEAD~3 --hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交,回退上上上一个版本
git reset --hard origin/master 将本地的状态回退到和远程的一样
git reset head 用于取消已缓存的内容
注意:谨慎使用 –hard 参数,它会删除回退点之前的所有信息。
HEAD 说明:
HEAD 表示当前版本
HEAD^ 上一个版本
HEAD^^ 上上一个版本
HEAD^^^ 上上上一个版本
以此类推...

可以使用 ~数字表示
HEAD~0 表示当前版本
HEAD~1 上一个版本
HEAD^2 上上一个版本
HEAD^3 上上上一个版本
以此类推...

gitea私有仓库搭建

Windows搭建

下载地址:https://dl.gitea.io/gitea/ 
选择可执行的.exe文件,如gitea-1.14.3-windows-4.0-386.exe 
下载放于指定目录下双击运行即可

Linux搭建

1、安装git

yum -y install git

2、下载Gitea,下载最新的版本可以参考https://dl.gitea.io/gitea

wget -O gitea https://dl.gitea.io/gitea/1.14.3/gitea-1.14.3-linux-amd64 
wget 默认下载到当前执行的wget的目录里 
可剪切到指定目录下mv gitea /usr/local/software/

3、在下载到Gitea的目录下,修改权限

chmod +x gitea

4、运行Gitea

先切换到gitea的安装目录/usr/local/software 
执行命令:./gitea web 
后台运行:nohup ./gitea web & 

image-20210728202037045

5、访问gitea

http://IP:3000/ (或http://localhost:3000/) 
刚登录访问需要修改配置,按要求正确修改即可使用

image-20210728200715297

6、将gitea注册成服务

在目录/etc/systemd/system下或者/usr/lib/sytemd/system下新建文件gitea.service
编辑添加如下内容:
[Unit]
Description=Gitea (Git with a cup of tea)
After=network.target

[Service]
RestartSec=2s
Type=simple
User=root
Group=root
WorkingDirectory=/usr/local/software/
ExecStart=/usr/local/software/gitea web -c /usr/local/software/custom/conf/app.ini
Restart=always

[Install]
WantedBy=multi-user.target

设置文件gitea.service的权限
chmod 755 -R gitea.service

重新加载配置信息(重要):systemctl daemon-reload 
启动gitea:systemctl start gitea.service 
查看进程状态及日志:systemctl status gitea.service 
开机自启动:systemctl enable gitea.service 
关闭自启动:systemctl disable gitea.service

image-20210728203140471

posted @ 2022-02-20 11:24  #码农9527#  阅读(62)  评论(0)    收藏  举报