天天看點

周末學第一波-git學習心得

git學習心得

利用一個周末的空餘時間,終于将自己一直想複習和進一步學習的git。學習過程中發現,自己雖然以前使用過,但是随着時間流逝,記憶也在流逝…是以下面将自己本周學習過程和踩得坑記錄下來,以便後續檢視。好了,天也不早了,咱們該幹點正事了…

  • 學習git之前首先得知道什麼是git,它能幹嘛,隐約的記得還有github是個什麼玩意,和git有啥關系?

這一系列的連環問題,問出了一個git小白的心聲,咱們就用簡單直白的語言來回答一下:

git 是分布式版本控制系統。看字面意思就知道,是控制版本的一個工具,他的作用當然就是控制檔案的版本。那麼如何控制版本的,比起傳統的複制粘貼拷貝等手動式的控制版本有什麼優勢,咱們等下介紹。

說完了git,咱們來說說什麼是github,github其實就是一個開源的遠端倉庫,可以代替你保管你的檔案。在沒有遠端倉庫以前,大家同時參與一個項目,而且要達到版本控制是非常困難的。有了github,大家可以利用克隆和分支功能,參與更多的開源項目(如人氣極高的bootstrap項目)或者管理自己的項目。

綜上所述,他們的關系就很明了了。git是一個工具,可以控制你的檔案和版本。而github是一個遠端倉庫,可以保管你的檔案和版本,當然别人也可以克隆的你的檔案,進行修改,達到一個互相交流學習的目的。

  • 那麼問題又來了,既然是版本控制,我咋聽說很多公司都用的svn啊,它和git又有啥差別?

svn确實使用比較普遍,它是集中式版本控制,顧名思義,集中式肯定要以一個中央為主,是以他有個中央伺服器,每個人将修改的檔案和代碼要放在中央伺服器,每次修改之前,最好update一下。而且使用svn需要聯網,在區域網路下還好,不在區域網路下,有沒有很好的帶寬,那恭喜你了,有時候穿個幾M的檔案,絕對讓你等到窒息。那git就不同了,它是分布式,即每個人的本地都會有一套完整的版本庫,你修改了檔案,在本地就可以控制版本,然後push到分支,如何有沖突,處理沖突即可。這樣也會更安全,沒有中央伺服器的概念,萬一有人的檔案丢失,也不會造成影響,隻需要在分支上clone一個即可。

- 第三問來了,既然把git說的這麼好,能具體說說git的優勢和功能麼?

git的優勢就是分布式管理,它可以記錄你項目或者項目的版本,確定一個項目的完整性,沒有中央伺服器,不會因為單點故障導緻大家都不能工作。

既然記錄了版本,就可以回退到前一個版本,檢視每一個版本都修改了什麼,這裡就需要溫馨提示,在每一次送出時最好将備注寫清楚,因為當時你頭腦清晰,記得自己修改了什麼,但是随着時間的流逝…你懂得

前面說了svn需要聯網,這樣不好。那git肯定就是不聯網也可以控制版本了。是以它支援離線送出,相對獨立不影響協同開發。

那如上面的介紹,大家應該初步認識了git,肯定有小夥伴急于想知道咋用了,下面我将介紹下,如何使用git。為了節省時間,有些軟體安裝我就不再記錄,在文章裡,我會貼上我自己參考大佬的連結,在這裡先拜謝那些個大佬。

好了,言歸正傳,首先在window上裝上git,為了照顧部分小夥伴,我将軟體下載下傳連結貼出來,官網如下:

https://git-scm.com/downloads ,大家可以自行下載下傳自己需要的版本。需要注意的是git原來就是在linux上開發的,随着時間的流逝,它被移在了windows、mac等系統上…

liuux上安裝git

我這裡要說明的是,我是在阿裡雲伺服器安裝的,伺服器版本centos_7。步驟如下:

安裝git
yum -y install git
檢視git版本
git --version
添加git使用者
adduser git -m 或者 useradd git
設定git密碼
passwd git
跳轉到git目錄
cd /home/git
為了學習,我還搭建了一個自己的倉庫,步驟如下:
建立空倉庫
git --bare init app.git
設定git檔案夾操作權限
chown -R git:git app.git
生成密鑰
ssh-keygen -t rsa -C "*****"(注意密文自己寫)