基本原理
查看「.git」文件夾裏的結構tree
or ll
都可以:
這裏包括了所有Git存儲和操作的對象
HEAD 文件指示目前被檢出的分支
index 文件保存暫存區信息
objects 目錄存儲所有數據內容
refs 目錄存儲指向數據(分支)的提交對象的指針
版本迭代的過程:
分支 與 HEAD:
- 分支本質上僅僅是指向提交對象的可變指針
- HEAD是指向當前所在的分支,並隨着提交操作自動向前移動
衝突
類型:
- 自動合併
- 邏輯衝突
- 真正的衝突
- 樹衝突
參考:
實踐與解決方案:
- 類似與import引起的衝突「禁止對老代碼使用工具進行格式化」
- 改動他人代碼引起衝突「通過annotation找到具體開發,瞭解清楚業務後在做merge」
- 文件引起的衝突「 如果特別複雜,可以考慮Copy一份手動改『建議:及時提交本地代碼代遠程倉庫』」
常用命令與配置
命令:
配置:
操作 | 含義 |
---|---|
git config –global user.name “xxx” | 設置用戶名 |
git config –global user.email “[email protected]” | 設置郵箱 |
git config –global push.default simple | Git 2.x 默認的是「simple」 |
git config –global core.autocrlf false | 使 Git 不用管 windiws / unix 換行符轉換 |
git config –global gui.encoding utf-8 | 避免 git gui 中的中文亂碼 |
git config –global core.quotepath off | 避免 git status 顯示的中文文件名亂碼 |
git config –global core.ignorecase false | 僅「Windows」上需要配置 |
約定習俗:
- 發開策略:分支開發,主幹發佈
- 分支格式:日期-jira號