Git&Github學習筆記
學習內容:尚硅谷github教程(BV1pW411A7a5)
學習原因:剛開始工作,想到以後要和git和github天天打交道,還是熟悉一點,形成一套理論體系
學習方法:聽視頻——>羅列問題——>自問自答定期覆盤+視頻重點截圖
提出問題
git和github一些概念
- 版本控制工具應該滿足?(版本管理,協同修改,數據備份,權限控制,歷史記錄,分支管理)
- 集中式版本控制工具(以SVN爲例)與分佈式版本控制工具(以Git爲例)
- git優勢(本地,完整性由誰保證?分支的實質?與linux用一個爹=熟悉linux指令)
- git在本地的結構(work tmp repo)
- git和代碼託管中心
- 局域網
- 外網
- 爲什麼需要代碼託管中心?
- 本地庫和遠程庫的工作流程
- 團隊內部協作
- 跨團隊協作
git命令行操作
- git init
- git config(系統級別與repo級別)git config user.name --global
- git config保存在哪裏?~ .config & .git/config
- git status
- git add .
- git commit -m’ ’
- git rm --cached filename
- 暫存區的作用(進退有據)
- HEAD
- git log
- git log --oneline(只有過去)
- git log --pretty=oneline(只有過去)
- git reflog(過去與未來)
- 歷史版本的樣子
- 指針前進後退的三個方法
- 基於索引 git reflog
- ^ 重複 後退
- ~ +數字 後退
- git reset --hard [索引值]
- git reset的三個參數 soft mixed hard 三個區的改變情況
- git diff
- 加文件名與不加文件名
- 默認:工作區與暫存區比較
- HEAD/其他指針位置 工作區與某個版本的差異
- git diff --cached 暫存區與最新本地版本庫(最近一次commit)
- git diff --cached [版本值] 暫存區與某個版本的差異
- 比較兩個版本的差異 git diff 版本 版本
- 什麼是分支?(並行開發)
- git branch 分支名字
- git branch -v
- git checkout 分支名
- git merge 某分支
- 解決衝突步驟:改,git add,git commit
- 本地庫給遠程庫地址別名 git remote add 別名 遠程庫地址(以後不用每次輸入長串地址,加別名即可)
- git remote -v
- git push 庫 分支【本地repo branch——>遠程repo branch】
- git clone=git init+下載到本地+origin別名
- git pull 庫 分支 pull=fetch+merge
- git fetch
- fork
git原理
- 數據完整性——hash git:SHA-1
- 版本保存——快照流+指向快照流索引
- 對於重複數據——指針指向之前parent
- ssh連接與https連接(連接的是服務器)-——ssh-keygen -t rsa -C “[email protected]” 之後無需輸入密碼。【生成——>驗證】
加深理解——看圖說話
三個區——結構
團隊內部協作方式(invite)
跨團隊協作流程
爲什麼要fork?歸屬權
分支的本質,git的經典之處
開發新功能,hot_fix,並行開發,升級版本
分支:基於master的複製,合併可能有衝突,衝突解決
git指令
來自阮一峯大神
總結
之前在github上建的博客瞎寫,但是感覺有點麻煩也沒人看到,不容易堅持。工作意識到了總結和學習的重要性,會把需要深入的東西都放在博客上面,因爲有紙質筆記,所以不會在上面講解,純個人複習有時查閱用到,而且不會特別深究【究到我需要的程度即可】。
總的來說git協同就是上面兩個流程,瞭解常用指令就夠了
有一篇博文寫的很好https://www.ruanyifeng.com/blog/2014/06/git_remote.html
阮一峯大神寫的。