
-
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版本號]
