Git 這只小妖精
概覽
目標
在幾分鐘內就掌握常見的 git 操作
路線
?? ? clone 大法好
? 創建本地倉庫
? 關聯遠程倉庫
? 一推一拉
? Git 介紹
? ??
?? 如果你想先了解下什么是 git,請 ? Git 介紹
反饋 or 求助
?? 或許寫的不盡你意,如果你有什么問題或是什么建議,可以 Email to: [email protected] 或者使用 anydesk 請求協助,我們一起探索前行
clone 大法好
當我們打開 PyESPCar github 的大門以后,我們會做的第一個操作就是 clone 一份到本地,當然你可以選擇 Download ZIP 通過下載 zip 壓縮包的方式將 PyESPCar 下載到本地,但是作為已經在 Ubuntu 上作妖的我們來說,這太 low 了
所以我們在終端中輸入下面的命令將 PyESPCar 克隆到本地
$ git clone https://github.com/1zlab/1ZLAB_PyEspCar.git
那么問題來了,clone 后面的 https 地址是哪兒來的呢?
這話還得從當你在某個倉庫點擊 Clone or download
之后說起,當你點擊之后會發現有個提示框,而框中默認顯示的鏈接是下圖這個樣子的
然后又有一個問題出現了,上圖中的 Use SSH
是啥,點了以后會咋樣?
當你點了 Use SSH
以后,提示框會變成樓下這樣,那鏈接也是可以用于 clone 的。別問我怎么把提示框切回去,聰明的你怎么可能不知道
那為啥我們 clone 后面的鏈接選擇的是 https 的不選點了 Use SSH
的那個鏈接呢?
這個問題就說來話長了,但是我選擇長話短說,其實就是兩個關鍵點,一是麻煩,二是沒權限。如上圖所圈,SSH 鏈接需要部署 SSH 密鑰,更關鍵的一點是,你必須是這個倉庫的管理員或者擁有者,顯然你不是,因為這倉庫是凱哥的,哈哈哈。所以,聽話,clone 別人的倉庫要用 https 鏈接,不要再想著 SSH 鏈接了,而且 gitub 官方幫助文檔上也推薦使用 https 鏈接。
什么?你說你不信?那我幫你試試好了
創建本地倉庫
既然已經看到了 git 這只小妖精,那不能降服她豈不是虧了。
-
首先確認本機裝了 git,如果沒裝,溫故而知新去
-
創建目錄——你希望倉庫放在哪兒就創建在哪兒,我創建在 ~/test/git/
-
初始化倉庫
-
騷操作之上面兩步合成一步
關于.git
目錄的簡單說明:你可以把它當成是考試成績單,考完試有個分數,老師給你把成績都留著,一直保存著,除非教學樓被燒了,所以除非你把它刪了,不然你的修改記錄它都給你保存著。
關聯遠程倉庫
如果你也想在 github 上裝一波 13,那就要學會關聯遠程倉庫了
-
在 github 上創建一個倉庫,這我就不上圖了,首先你得有個賬號,登陸 github 以后你可以在頭像左邊看到一個?,說時遲那時快,別猶豫,點它,然后就可以看到一個提示框,里面有個選項叫
New repository
,點它,接下來的就看你的造化了 -
把本地倉庫和遠程倉庫做關聯,切記,你得在本地倉庫目錄中,不然命令就沒效果了
-
騷操作之問:這個 origin 是什么呢? 是你給遠程倉庫取的代號,所以你能想到什么呢?
-
查看關聯的遠程倉庫
$ git remote -v
問題又找上門了,本地倉庫的名字、遠程倉庫的名字、遠程倉庫的代號,這仨分別是啥關系呢?
舉個栗子,你在家的時候爸媽叫你小名,在公司或者學校的時候同事或者同學叫你全名,在網上的時候別人叫你網名,這三個名字完全沒關系,指向的人都是你。所以你想怎么取名都可以,三個名字都一樣,可以,三個名字都不一樣,可以,其中兩個一樣,可以。
一放一推一拉
-
修改放入本地倉庫
-
add 文件
$ git add 文件名
-
commit -m "修改說明"
$ git commit -m "修改說明"
-
-
推送修改
$ git push origin master
-
拉取修改
$ git pull
Git 介紹
-
大家好,我叫狗子,是一名大四畢業生,現在是 2018 年 6 月 1 日凌晨 2 點,我正在奮斗我的畢業論文,前晚我熬盡心血寫完了初稿,興沖沖的發給了我親愛的導師,沒想到,他說他前段時間忙,忘記把論文大綱發給我了,留下我在黑夜里凌亂?!境醺濉?/p>
現在是 2018 年 6 月 1 日 12 點,我又通了個宵,按大綱把我的初稿刪刪改改填了進入,又發給了我親愛的導師?!拘薷?1】
現在是 2018 年 6 月 1 日晚 10 點,導師又把我的論文打回來了,并且要我把初稿中刪除的某些語句加回來,看著他的批注,我有點迷茫,于是我把同組的小伙伴的叫來幫我,我們開始了一起工作的歡快夜晚?!拘薷?2_我】【修改 2_他】 然后我發現了一個問題,我們改的地方不完全一樣,甚至沒法簡單的復制粘貼合并成一篇論文,于是我只好一個人把他的成果和我的一點一點比對合并。
現在是 2018 年 6 月 2 日 10 點,我終于合并完了,他卻告訴我他又更新了一些東西,要我再合并一下,然后我就暈倒了。夢里上帝對我說了一句話(我們都知道上帝是歪果仁,所以)“git, you need version control.”
-
git 是一個開源的分布式版本控制系統,可以有效、高速的處理從很小到非常大的項目版本管理。Git 是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件。
-
歷史: 自2002年開始,林納斯·托瓦茲決定使用 BitKeeper 作為 Linux 內核主要的版本控制系統用以維護代碼。因為 BitKeeper 為專有軟件,這個決定在社群中長期遭受質疑。在 Linux 社群中,特別是理查德·斯托曼與自由軟件基金會的成員,主張應該使用開放源代碼的軟件來作為 Linux 核心的版本控制系統。
2005年,安德魯·垂鳩寫了一個簡單程序,可以連接 BitKeeper 的存儲庫,BitKeeper 著作權擁有者拉里·麥沃伊認為安德魯·垂鳩對 BitKeeper 內部使用的協議進行逆向工程,決定收回無償使用 BitKeeper 的許可。Linux 內核開發團隊與 BitMover 公司進行磋商,但無法解決他們之間的歧見。林納斯·托瓦茲決定自行開發版本控制系統替代 BitKeeper,以十天的時間,編寫出第一個 git 版本。