Git的使用心得

前言

本文純屬我的學習筆記整理不作任何商業用途 若有錯漏歡迎指正html

生死看淡,不服就幹前端

開門附上阮老師的git經常使用命令清單鎮壓妖魔鬼怪git

正文

分佈式版本與集中式(SVN)區別

Git是一種分佈式版本控制系統,咱們將集中式版本管理系統(SVN)和咱們的分佈式管理系統做爲比較咱們就比較好理解。github

集中式(SVN) 分佈式(Git)
是否有中央服務器 有。開發人員須要從中央服務器得到最新版本的項目而後在本地開發,開發完推送給中央服務器。所以脫離服務器開發者是幾乎沒法工做的 沒有中央服務器,具備如下幾個區域:Workspace(工做區),Index(暫存區),Repository(倉庫區),Remote(遠程區)
網絡依賴  必需要聯網才能工做,並且對網絡的依賴性較強,若是推送的文件比較大並且網絡情況欠佳,則提交文件的速度會受到很大的限制。 分佈式在沒有網絡的狀況下也能夠執行commit、查看版本提交記錄、以及分支操做,在有網絡的狀況下執行 push 到 Remote Repository。
網絡依賴  必需要聯網才能工做,並且對網絡的依賴性較強,若是推送的文件比較大並且網絡情況欠佳,則提交文件的速度會受到很大的限制。 分佈式在沒有網絡的狀況下也能夠執行commit、查看版本提交記錄、以及分支操做,在有網絡的狀況下執行 push 到 Remote Repository。
文件存儲格式  按照原始文件存儲,體積較大 按照元數據方式存儲,體積很小
是否有版本號  有   沒有
分支操做的影響   建立新的分支則全部的人都會擁有和你同樣的分支 分支操做不會影響其餘開發人員,每一個人在本身分支上開發也能夠在同一個分支上共同開發,不過須要事先跟同事商量好不一樣模塊開發否則回存在衝突,開發完成後再合併每一個分支
提交   提交的文件會直接記錄到中央版本庫 提交是本地操做,須要執行push操做纔會到主要版本庫

Git經常使用操做命令行

理解一張很是出名的Git原理圖web

圖中都是咱們日常使用Git合做時普通的一些命令行,這些基本的操做也基本可以知足咱們平時使用Git,根據我 的工做事件已經查閱相關書籍簡單解釋咱們經常使用的命令行具體表明什麼意思。後端

  • git clone 你的github地址
    • 一般咱們合做開發項目都是先從遠程克隆團隊項目到本地,此時項目就存在於咱們當前的工做區(Workspace)
  • git checkout -b 你的分支
    • 新建你的分支並切換到你本身的開發分支。
  • git pull
    • 拉取當前分支的最新代碼
  • git fetch
    • 拉取全部遠端的最新代碼,當其餘同事提交了他的代碼以後你能夠拉取所有最新代碼,推薦你開發完成以後拉取最新代碼併合並。
  • git add .
    • 提交全部修改文件到暫存區,注意是修改過的文件纔會被提交,暫存區的代碼還不會提交到倉庫區而是放到暫存區,爲何會有個暫存區?個人理解是比如咱們搬磚,咱們須要一臺拖拉機先把燒好的一部分磚放到車上(也能夠所有燒好統一放到車上),將車開到倉庫放下咱們燒好的磚再最後運送到遠程客戶手中。
  • git commit -m "你的修改註釋"
    • 提交暫存區文件到本地倉庫(Repository)
  • git push
    • 提交本地修改文件到遠程區(Remote)
  • git merge 分支名稱
    • 本地分支代碼合併其餘分支代碼,也能夠合併遠程分支代碼。咱們在合做開發的時候一般須要合併不一樣分支不一樣開發人員寫的代碼,通常來講在開發以前先拉取pull別人的代碼到本地再開發本身的代碼在合併的時候是不會有衝突的,直接merge就可以獲得兩個分支共同的代碼。

我認爲理解上述的全部內容就基本上知足你工做上的需求了,不過這裏仍是附上完整的Git操做命令行連接服務器

工做中實踐

結合個人工做對比這些命令行網絡

  • 在vscode克隆合做項目到本地以後咱們點擊左下角查看項目分支狀況 分佈式

  • 咱們的商家管理後臺分支先後端一共五我的合做開發,每一個人用本身獨立的分支開發具體的功能,具體分支以下:gitlab

    • 每一個人用本身名字的縮寫區分每一個人開發的具體分支,開發完成後在gitlab上申請合併分支到開發分支(develop) 咱們公司有本身的編譯腳本,開發分支上的代碼會自動幫你打包編譯,這樣咱們前端就直接負責開發合併省去打包編譯步驟了。
    • 注:vscode上的origin/分支名稱 表示該分支屬於遠程分支,你還未拉取該分支到你的本地環境。
  • 更新遠程全部遠程分支的最新代碼 git fetch

  • 本地拉取當前分支的遠程代碼 git pull ps:與後端同事合做開發

  • 修改個人代碼並提交到暫存區而後保存到本地倉庫 git add . && git commit -m "修改了接口文檔"

  • 提交到遠程倉庫 git push

  • 最後在gitlab上發起合併到開發分支的編譯請求就能夠實時在測試環境預覽你的開發成果了,最後這一步會因不一樣公司的不一樣編譯環境而定,具體是與後端同事或者服務端同事商量協定。

總結

對世界上的一切學問與知識的掌握也並不是難事,只要鍥而不捨地學習,努力掌握規律,達到熟悉的境地,就能融會貫通,運用自如了。 —— 高士其

關於學習,有些人學以至用,不飛則已,一飛沖天;不鳴則已,一舉成名,學習就是不斷地積累,不停地探索,這篇文章只是一些我的心得集合若是能對你有點幫助我會感到開心,同時也推薦一些更好的文章給你們學習,社會主義新中國共同窗習。

-------------推薦閱讀------------

廖雪峯老師關於Git的官方教程

git 團隊合做, git 分支開發 、合併、衝突 實例

全面理解Git

如何優雅地使用Git

公司內部搭建 git 服務器

相關文章
相關標籤/搜索