適合:開發和測試人員
參考
必讀:coding.net/help/doc/gi… Git常用命令速查表 廖雪峰的Git教程 git教程中文版v2
安裝Git客戶端
命令列示例
新增遠端倉庫
對當前工程開始用 Git 管理,只需到所在的目錄,執行:
$ git init
新增遠端倉庫:
$ git remote add origin https://git.coding.net/fxm5547/gitest.git
接下來用 git remote 命令來檢視當前新增的遠端倉庫:
$ git remote -v
或克隆遠端倉庫
- 沒有submodule時:
$ git clone https://git.coding.net/fxm5547/gitest.git
- 有submodule時:
$ git clone --recursive https://git.coding.net/fxm5547/gitest.git && cd gitest && git submodule foreach git checkout master
新增submodule
$ git submodule add https://git.coding.net/fxm5547/submodule-name.git submodule-dir
這樣在submodule-dir
目錄下就是submodule-name
的程式碼,根目錄會增加一個.gitmodules
的配置檔案。
永久儲存使用者名稱和密碼
$ git config credential.helper store
分支
新建分支:
$ git branch develop
切換到develop分支:
$ git checkout develop
分支推送到遠端倉庫 git push [倉庫名] [分支名]:
$ git push origin develop
更新程式碼
- 沒有submodule時:
$ git pull
- 100%更新程式碼成功(忽略一切本地更改):
git fetch --all && git reset --hard origin/master && git checkout master
- 有submodule時:
$ git pull && git submodule foreach git pull
- 100%更新程式碼成功(忽略一切本地更改):
git fetch --all && git reset --hard origin/master && git checkout master && git submodule foreach git fetch --all && git submodule foreach git reset --hard origin/master && git submodule foreach git checkout master
提交程式碼
檢視當前工作目錄的檔案狀態:
$ git status
將修改/新增的檔案放入暫存區:
$ git add login.code
提交至本地倉庫:
$ git commit login.code -m "完成登入功能"
推送到遠端倉庫git push [遠端倉庫名] [分支名]:
$ git push origin develop
$ touch login.code & echo 'login'>login.code
$ git add login.code
$ git commit login.code -m "完成登入功能"
複製程式碼
合併分支
目前用不到,一律通過Coding控制檯新建MergeRequest合併到Master
本地倉庫更新到最新,每次合併前都這麼做git pull [遠端倉庫名] [分支名]:
$ git pull origin develop
將指定分支合併到當前工作分支git merge [分支名] :
$ git merge develop
$ touch reg.code & echo 'register'>reg.code
$ git add reg.code
$ git commit reg.code -m "完成註冊功能"
$ git checkout master
$ git pull
$ git merge develop
複製程式碼
merge時出現衝突,手動解決之後add和commit即可
Merge Request
參考 在Coding控制檯操作,專案負責人授權或直接合並即可。
git reset
還原到commit ID 指定的版本:
git reset --hard HEAD~3
git revert
還原到提交前的版本
釋出管理
- 釋出新版流程:
- 在Coding控制檯刪除舊的 release branch,並從當前的 master 建立新的 release branch;
- 伺服器更新程式碼:
$ git fetch --all && git reset --hard origin/release && git checkout release && git submodule foreach git fetch --all && git submodule foreach git reset --hard origin/release && git submodule foreach git checkout release
複製程式碼
-
在Coding控制檯基於當前release分支新建tag。
-
Bugfix 流程: bugfix 指的是修復已經發布的程式(release branch)中的缺陷。
- 在本地release branch 從 master cherrypick 修復該缺陷的一個或多個 commit;
$ git checkout release
$ git pull
$ git cherry-pick 2163f0331bb2d5491cf84fe4d5a0d638ed92afb1
$ git push origin release
複製程式碼
cherry-pick的commit-hash可通過 git log
或在控制檯檢視
- 伺服器更新程式碼:
$ git fetch --all && git reset --hard origin/release && git checkout release && git submodule foreach git fetch --all && git submodule foreach git reset --hard origin/release && git submodule foreach git checkout release
複製程式碼
- 在Coding控制檯基於當前release分支新建tag。
JetBrain IDE中使用Git
使用內建的控制檯
使用圖形化外掛
切換/新建分支
常用的操作使用快捷鍵
開始編碼前Update Project工程,將所有分支更新到最新:
注意事項
- Git對於空目錄預設不進行版本控制,請通過新增.gitkeep空檔案使其被track
- 通過.gitignore新增不需要版本控制的檔案
- 執行以下命令解決大檔案傳輸問題
git config --global http.postBuffer 1048576000