作為一個開發人員,了解版本控制工具不僅可以更好的管理公司的項目,也可以提高自己的開發效率,接觸Git有較長一段時間了,最近換了新的公司,公司團隊内部制定了使用git的送出代碼的規範。一直使用git指令來進行相應的代碼送出操作,疏于對自己的要求,并沒有具體了解過git指令所用參數的含義,今天總結一下。
舉例,假設本地有一個dev分支
1.建立新分支
git branch [feature-network] - - 具體的分支名稱
2.切換到新分支
git checkout [feature-network]
3.送出修改後的代碼到本地
git commit -a -m “描述語言”
參數說明:
-a -all stage all modified and deleted paths
意思就是隻将所有被修改或者已删除的且已經被git管理的文檔送出到倉庫中,會先把所有已經track的檔案的改動add進來,然後送出(有點像svn的一次送出,不用先暫存). 對于沒有track的檔案,還是需要git add一下.
-m 用來指定送出的資訊
4.切換到develop分支
git checkout dev
5.更新develop分支代碼
git pull origin dev
6.送出完成後就要将目前分支合并到dev分支
git merge --no-ff feature-network
參數說明:
--no-ff: generate a merge commit even if the merge resolved as a fast-f
解釋一下:不使用fast-forward方式合并,保留分支的commit曆史,可以儲存你之前的分支曆史。能夠更好的檢視 merge曆史,以及branch 狀态
7.如果有沖突,需要解決沖突,并進行送出
git commit -a -m “解決沖突”
8.之後将本地代碼推到遠端倉庫中
git push origin dev
9.删除本地建立的feature-network分支
git branch -d feature-network
參數說明:
-d —delete delete a fully merged branch
删除一個全部已經合并完的分支
PS:有的時候采用上述指令在删除分支時會報如下錯誤:the branch XXX is not fully merged, 原因分析: XXX分支有沒有合并到目前分支的内容
可以使用大寫的D 強制删除 git branch -D XXX
最後,在使用git指令的時候隻是明白使用時不夠的,還是應該多了解一下具體參數,這樣遇到問題的時候才能對症下藥。
參考:https://git-scm.com/book/zh/v2
路漫漫其修遠兮,吾将上下而求索。