暫存區
本地歷史倉庫
git chechout head 撤回
遠端倉庫
具體可以看下圖:
git checkout -b 【分支名字】 建立分支,並且切換到這個分支
git checkout master 切換分支
git branch -d [feature] 刪除分支(假刪除,是刪除引用)
什麼是引用
git push 提交遠端倉庫
快照原理
每一次commit提交,當前的快照parent(起源),指向的是上一版本的hash值
git回退操作
git reset -onto 目標 commit 起點commit 終點commit 版本回退
git reset -onto 第三個commit 第4個comit branch1分支
git reset --soft 本地庫會移動一下回退上一版本,其他兩個區域不變
git reset --mixed 本地庫頭指標下移動,重置暫存區,工作區不變
git reset --hard 全部區域下移動,重置 保持跟本地庫一樣
git reset --hard head^ 後退乙個版本
git merge brabch1 多條分支還會存在的,只是合併了
git pull 底層就是用了 fetch merge
git commit --amend 在不新增commit記錄的情況的,進行提交
git revert 使用後增加一條記錄,reset 則不會。撤銷 某次操作
git chechout 切換分支而已
git stash 臨時存放工作目錄的隱匿
git強制覆蓋:
開發階段:
開發新需求都從master拉取feature分支,不同迭代發布**使用不同的分支,避免相互影響。需要進行開發環境聯調的**合併到develop分支,由jenkins自動發布到開發環境。
命名方式: dev-mmdd(時間)-需求名稱,例如: dev-1205-***x
測試階段:
每月為乙個迭代週期由系統owner拉取提測分支test,並定期維護(merge master).開發feature分支合併到提測test分支,合併前需要由模組負責人進行review或交叉review.多個feature分支在測試過程中,需要借助release分支來進行合併,然後再進行提測。多個feature分支在測試過程中,某乙個需求不能如期發布,需要將release分支刪除,將可繼續的分支重複執行第2步進行測試驗證:
命名方式: test-mmdd(每月10日),例如: test-1215 / release-mmdd(每月10日),例如: release-1210
發布階段:
測試通過後release進行merge master,並解決衝突,在release分支回歸測試回歸通過後,先在master分支拉取tag分支備份,然後把release合併到master.發布master
命名方式: tag-mmdd(時間),例如: tag-1212
.gitignore規則不生效的解決辦法
把某些目錄或檔案加入忽略規則,按照上述方法定義後發現並未生效,原因是.gitignore只能忽略那些原來沒有被追蹤的檔案,如果某些檔案已經被納入了版本管理中,則修改.gitignore是無效的。那麼解決方法就是先把本地快取刪除(改變成未被追蹤狀態),然後再提交:
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
一些通用的禁止檔案:
.gitignore 檔案
.gradle/
.metadata/
.recommenders/
.build/
build/
.settings/
.project
.classpath
.setting/
解決git衝突:
以上就是使用一些git的心得,具體的內在原理還是需要大家看一下原始碼。有其他需要修改的希望大家告訴我,我在持續維護,也是給自己乙個學習的機會。
git 相關開發常用
git remote set url origin url git remote rm origin 刪除現有遠端倉庫 git remote add origin url 新增新遠端倉庫3 git remote v 檢視遠端倉庫的位址git提交相關 git add git commit m git ...
Git相關配置
1.git顏色配置 今天在ubuntu上面安裝了git應用程式。通過ssh登入後,使用git status,git diff,沒有顏色顯示。全是黑色,這與公司使用時不一樣。使用預設顏色,配置如下 git config global color.diff auto git config global ...
git相關使用
安裝git 安裝完成後,還需要最後一步設定,在命令列輸入 git config global user.name your name git config global user.email email example.com 建立版本庫 建立乙個版本庫非常簡單,首先,選擇乙個合適的地方,建立乙個空...