狠狠撸
Submit Search
骋颈迟版本管理控管实战
?
0 likes
?
38 views
Claire Chang
Follow
介绍驳颈迟
Read less
Read more
1 of 33
Download now
Download to read offline
More Related Content
骋颈迟版本管理控管实战
1.
Claire Chang Git版本控管實戰 課程分享
2.
為什麼想去上課 ? 導入GIT後在mobile2.0開發完成要合併時發?嚴重衝突 ? 整體開發流程上尚未建??致的流程概念 ?
因??和團隊對GIT不熟悉,導致容易在操作GIT時因操 作錯誤產?問題,並且在遇到問題時不知該如何解決 ? 現有的GIT線圖混亂?難以辨視,讓GIT的優點無法在團 隊內發?效果(反?比SVN時代更難理解)
3.
這次分享的?標 ? 建??套操作GIT的標準流程規範(包括統?PULL? 式,與Designer的合作模式,分?合併策略的統?等 等) ? 提升團隊成員對GIT的了解度,使團隊減少因操作問題? 發?的錯誤 ?
让团队的骋滨罢分?图能够更易於理解与辨视
5.
<< 終極?標
6.
分散式版本控管 ? 分為『?作區』及『儲存庫』 ? 本地端?作區會有?份完整的儲存庫 ?
沒有.git?錄可?git init??建?個 ? 砍掉.git等於刪除所有版控資訊 ? 擁有.git?錄等於可以隨時復原所有歷史原始碼
8.
儲存庫(Repository) ? 本地儲存庫( Local
Repository ) ? 同時包含?作?錄與儲存庫 ? 預設位於?作?錄下的.git 資料夾 ? 遠端儲存庫( Remote Repository ) ? 僅儲存庫(Bare Repository) ? GitHub / Bitbucket / Visual Studio Team Services / … ? 共?儲存庫( Shared Repository ) ? 僅儲存庫(Bare Repository) ? 使??式跟遠端儲存庫?樣 ? 可以?git init--bare建?共?儲存庫
9.
了解Git 資料結構 ? 物件(
Object ) ? ?來保存儲存庫中所有檔案與版本紀錄( 或稱「物件儲存區」) ? 屬於?種「不可變的」(immutable) 檔案類型 ? 區分四種物件類型 ? blob儲存檔案內容 ? tree儲存?錄內容(儲存?錄下有哪些檔名) ? commit儲存版本內容 ? tag儲存標籤內容 ? 索引( Index ) ? ?來保存要進儲存庫之前的所有檔案狀態 ? 屬於?種「可變的」(mutable) 檔案類型 ? 主要位於.git/index檔案(?進位檔) ? 介於物件儲存區(object storage) 與?作?錄(working directory) ? 不在索引中的檔案又稱為untracked files
11.
查看物件ID / 內容/
類型/ ?? ? 計算物件編號(object id) git hash-object filename.ext ? 查看物件內容(pretty print) git cat-file -p a023a56eb2870c106ea9b968ece62604c9d81bb1 ? 查看物件類型(type) git cat-file -t a023a56eb2870c106ea9b968ece62604c9d81bb1 ? 查看物件??(size) git cat-file -s a023a56eb2870c106ea9b968ece62604c9d81bb1
13.
問題: 如果有?個SHA壓縮後1GB的?字檔,今 天修改了裡?1byte的內容,commit後git儲 存庫的??會增加多少呢?
14.
储存库、?作?录与索引的关係图
15.
顯?前幾次在GIT操作過的指令 git reflog
16.
深入了解RESET ? 主要?途:將當前分?復原變更–復原上次認可( Undo last
commit ) git reset HEAD~ ? 字?翻譯:將當前分?重置到指定版本–復原至特定版本 git reset 9ac91edf7342c14c3698f27cb4a18ea5727c3d53
17.
問題:TAG與BRANCH有什麼不 ?樣?
18.
關於「分?」的真正意義 ? 三維空間(3D) 外加?個時間維度可以稱為四維空間(4D) ?
分?就是?個可以讓你標記時間維度的指標 ? 分?是?個會隨著時間演進的指標 ? 標籤則是?個不會隨著時間演進的指標 ? 分?在Git 中就是?個?字檔案紀載著?前版本的位置 ? 「切換分?」( Checkout ) 等同於「控制時間維度」
19.
合併(Merging) ? ?般合併 ? git
merge ? git merge —no-ff ? git merge —squash ? git merge —no-commit ? git merge —abort ? 正向挑選合併(撿櫻桃) ? git cherry-pick ? git cherry-pick —continue ? git cherry-pick —quit ? git cherry-pick —abort ? 重新指定基礎位置合併 ? git rebase ? git rebase -i ? git rebase —continue ? git rebase —skip ? git rebase —abort ? 反向挑選合併 ? git revert ? git revert —continue ? git revert —quit ? git revert --abort
20.
合併「不同世界」的分?
21.
分?合併与衝突处理
22.
其他不同的合併?式
23.
保持「?作?录」的乾净清爽
24.
認識detached HEAD 狀態
25.
認識fast-forward Fast forward 合併之前 no Fast
forward
26.
重新認識git pull ? 等同於下列命令 ?
git fetch origin <branch> ? git merge FETCH_HEAD
27.
保哥的強烈建議 ? 最好在AD登入時每個?都執?這個 ? git
config —global pull.ff only ? 預設改?rebase進?合併 ? 不要把主要分?合併到次要分?,如果次要分?需要更 新主要分?的內容,?rebase的?式,這樣線圖的箭頭才 不會來來回回的很亂
28.
看圖說故事 誰把DEV偷?了
31.
重定基底(搁别产补蝉别)
32.
Rebase DEMO
33.
改善建議 ? 預設改?rebase進?合併 git config
—global pull.ff only ? Branch需要更新dev資料時,使?rebase取代merge ? dev要合併到qat時,加下—no-ff參數 ? Designer不實際參與GIT操作 ? 每個????個branch(這邊叫Sena branch好了) ? 送交:寫好bat檔,點兩下輸入訊息後?動做commit和push。 ? 取得檔案:要切換到不同的QAT單?作時,設計?個bat檔,點兩 下後輸入單號,該bat檔會?動reset Sena branch,然後rebase到 該單號的HEAD。(將本地端未COMMIT的所有之前的?作內容 清空)
Download