Git/GitHub基本操作
Git是分散式版本控制工具,SVN是集中式版本控制,有單點故障的問題
GitHub是Git的程式碼託管中心,類似的國內有碼雲,是遠端維護庫
Git的優勢
大部分操作在本地完成,不需要聯網
完整性有保證
儘可能新增資料而不是刪除或修改資料
分支操作非常流暢
與linux命令全面相容
基本操作
1.檢視工作區,暫存區狀態
git status
2.新增操作,將新建或修改新增到暫存區
git add [file name]
3.提交操作,將暫存區的內容提交到本地庫
git commit -m "commit message" [file name]
4.檢視歷史操作記錄
git log全顯示,翻頁方式和vim一樣
git log --pretty=oneline 每條日誌以一行顯示
git log --oneline
git reflog出現的head{移動到當前版本數}
5.操作版本,回到哪一個版本。
git reset. --hard 9a9ebd6
git reset --hard HEAD^根據head指標回到行
git reset --hard HEAD^^^回退三行
git reset --hard HEAD~3回退n步 相比來說 git reset --hard 9a9ebd6最好用 6.檢視文件 git --help reset
7.刪除檔案並找回
刪除:git rm filename
找回:git reset --hard[指標位置]
找回的前提是,刪除前,檔案存在時的狀態已經提交到本地庫
刪除操作已經提交到本地庫:指標位置指向歷史記錄
刪除操作尚未提交到本地庫:指標位置使用HEAD
8.工作區和暫存區的檔案比較差異
git diff apple.txt
git diff HEAD apple.txt
不帶檔名會比較多個檔案
9.分支的好處
同時並行推進多個功能開發,提高開發效率
各分支在開發過程中,如果某個功能開發失敗,不會對其他分支有任何影響
10.檢視分支
git branch -v
11.建立分支
git branch [分支名]
12.切換到某個分支
git checkout [分支名]
git add filename分支增加修改檔案和上面的一樣
git commit -m "說明..." [分支名]
13.合併分支
git merge [被合併的分支名]
14.解決衝突
第一步:編輯衝突檔案,刪除特殊符號
第二步:把檔案修改到滿意的程度,儲存退出
第三步:git add [檔名]
第四步:git commit -m "日誌說名..."
注意:第四步後面不能跟檔名
git基本原理
git底層採用雜湊SHA-1演算法
git remote add [遠端庫別名] https://github.com/帳號/遠端庫名.git 3.推送分支到遠端庫 git push [遠端庫別名] [分支名] #必須是建立遠端庫的人或邀請的團隊成員 4.克隆遠端庫 git clone https://github.com/帳號/遠端庫名.git 5.抓取遠端庫的修改到本地庫 git fetch [遠端庫別名 [分支名]] 6.接著5的操作檢視本地庫抓取的結果 git checkout '[遠端庫別名/[分支名]]' cat filename 7.切換回去 git checkout [分支名]
8.將抓取下來的修改和本地庫合併 git merge [遠端庫別名/分支名] 9.pull=fetch+merge git pull [遠端庫別名/分支名]
10.解決衝突
如果不是基於GitHub遠端庫的最新版所做的修改,不能推送,必須先拉取
拉取下來後如果進入衝突狀態,則按照"分支衝突解決"操作即可
Git工作流
1.集中式工作流(類似svn)
2.GitFlow工作流(最常用)
3.forking工作流(跨團隊操作常用)