Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库
git常用命令
# 下载一个项目和它的整个代码历史
$ git clone [url]
# 下载一个项目且指定分支
$ git clone -b [分支名] [url]
# 显示有变更的文件
$ git status
# 添加当前目录的所有文件到暂存区
$ git add .
# 列出所有本地分支
$ git branch
# 列出所有远程分支
$ git branch -r
# 新建一个分支,并立即切换到该分支
$ git checkout -b [branch]
# 提交暂存区到仓库区
$ git commit -m "message"
# 取回远程仓库的变化,与本地分支合并
$ git pull origin [url]
# 上传本地指定分支到远程仓库
$ git push origin [url]
# 显示当前分支的版本历史
$ git log
# 显示暂存区和工作区的差异
$ git diff
gitlab上的开发流程
一,开发
1,在gitlab上创建分支A
2,在自动化更新平台创建分支A的静态资源端口,告诉php端口号
3,在分支A开发完提交到远程分支A,在自动化平台上更新分支A静态资源端口
二,提测
1,在分支A上进行bug修改
三,上线到预生产主干
1,在gitlab上发起请求合并分支A到分支develop
2,合并完成后,在自动化更新平台上更新到pre
四,上线
1,在自动化更新平台点项目上线(分支develop合并到了分支release)
2,发上线邮件
3,上线完成后在gitlab上合并分支release到master
合并到master时,并指派给项目owner(或Review)
1.提交 Merge Request 后, 被指派人可通过 @someone
邀请一个或多个额外的 Reviewer (它们会收到邮件通知)
2.被邀请的 Reviewer 看过代码后, 可回复:thumbsup:
或+1
表示通过, 反之给出修改建议。
# git 开发上线操作流程
git 检出地址分为 http 和 ssh 的方式。
使用ssh在配置ssh-key(配置方式参考官网说明文档)之后的操作可以不用输入用户名和密码。
## 命令行操作
全局配置:
提交代码的log里面会显示提交者的信息
git config --global user.name [username]
git config --global user.email [email]
注意: 此处一般是在第一次使用git的时候去设置或者想要修改配置信息的时候设置。
如果是基于原有业务开发的话, 直接新建一个目录进行一下操作。
### 1. 创建分支并检出分支
git clone 项目地址(ssh)
git clone -b develop 项目地址(下拉develop)
git checkout feature-xxx(分支名称)
### 2. 拉取最新代码
在当前分支目录
git pull
拉取制定分支
git pull origin feature-xxx(分支名称)
### 3. 修改提交代码
检出代码并做了修改之后:
git status (查看当前修改状态)
- 提交修改到本地仓库
git add . ("."表示提交当前目录下所有的修改)
git add xxx (提交指定目录)
git add -a (提交所有修改)
git commit -m "修改的注释信息"(一定要详细)
### 4. 推送到远程分支
git push origin feature-xxx
### 5. 代码合并(以把feature -xxx 合并到 develop 为例)
1) git pull origin feature-xxx (合并之前做一次更新,以免有新的修改)
2) git checkout develop
3)git pull develop
4) git merge feature-xxx
合并之后如果有冲突, 在控制台会给出冲突文件,解决冲突之后再去提交推送。
### 6. 冲突的解决方式
在git pull / git push / git maerge 的时候,如果两个分支对代码都有修改的
情况下会有冲突。控制台会输出对应的冲突文件,找到对应的文件进行修改,修改完之后再去走add , commit , push。
### 7. 代码回滚
git log (可以查看所有的提交历史记录,可以带参数,具体使用详情自行搜索)
回滚的操作允许回滚到制定的提交版本:
git reset --hard [要回滚的版本hash版本号]