git及github學習筆記

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
阮一峯大神寫的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章