git入門(二):git基本命令講解(本地庫?遠(yuǎn)程庫)

前言
看git入門,請想象自己就是開發(fā)人員,正在操作一個項目的本地與遠(yuǎn)程的文件版本更新控制。


一、Git原理(why use git)

1、版本控制

(1)定義:
是一種記錄一個或者若干個文件內(nèi)容變化,以便將來查閱特定版本修訂情況的系統(tǒng)(理論不好理解)

(2)用處:
情況一:項目文件中有很多文件,經(jīng)過許多天后修改若干個文件,想找到之前某一天所修改的錯誤記錄,卻無從查起,這個時候便需要一個有提交文件記錄(包括提交時間、提交修改內(nèi)容等)的文件修改的版本控制工具來幫助你

情況二:多人協(xié)作共同管理一個擁有多個代碼文件的項目,你需要有一個提交修改記錄的版本控制工具去告知你的伙伴,該文件在何時何地修改了什么內(nèi)容,以便伙伴了解,便于團(tuán)隊之間協(xié)作

2、種類

(1)本地版本控系統(tǒng)

(2)集中式版本控制系統(tǒng)(SVN)
即擁有共有的服務(wù)器,作為中心節(jié)點,pull、commit、push都集中在這臺服務(wù)器上進(jìn)行操作,受限于服務(wù)器不靈活性和網(wǎng)絡(luò)問題

(3)分布式版本控制系統(tǒng)(Git)
哎這個不說了,累,具體操作和體驗可以看之前寫的《git的初嘗試》:
淺談git入門(一):git初嘗試

3、Git優(yōu)勢

誕生于2005年,來源自linux開源社區(qū)

  • 速度很快
  • 分布式(不怕斷網(wǎng)哈哈~)
  • 簡單的設(shè)計
  • 允許上千個并行分支同時開發(fā)

二、Git的幾個重要概念

1、記得之前在《git初嘗試》中嘗試對項目進(jìn)行本地和遠(yuǎn)程庫之間文件版本的操作控制。

如下圖標(biāo)注,終端操作,push到遠(yuǎn)程庫的全過程:


image

2、倉庫中的三種必備狀態(tài)(重要概念):

image

(1)已暫存(staged),將已修改的文件放在下次提交(提交至本地倉庫)時要保存的清單中,即暫存區(qū)里)。

(2)(添加了文件之后,)已修改(modified)某個文件,但還沒有提交保存

(3)已提交(committed)該文件,已經(jīng)被安全地保存在本地數(shù)據(jù)庫中了

三、簡單演示

1、起步

初次使用,需要設(shè)置姓名和郵箱

$ git  config --global user.name  "你的名字"
$ git  config --global user.email johndoe@example.com

2、clone一個項目

用于把一個已有的github項目clone(下載)到本地變?yōu)楸镜貍}庫

$ git clone git@github.com:jirengu/blog.git
$ cd blog

3、添加文件并提交【本地庫?遠(yuǎn)程庫】

(1)創(chuàng)建文件

$ touch a.md

(或者直接打開本地倉庫目錄新建文件)

由于剛才的文件是空文件,通過一個命令在文件中寫入一個字符串:
$ echo "hello" > a.md

(2)查看倉庫狀態(tài)

$ git status

此時,學(xué)會看命令行提示(英語單詞了解一下吧orz( ̄▽ ̄)")
如提示:untracked files(未跟蹤)、nothing added to commit(還沒添加文件在暫存區(qū)去等待本地提交),并提示怎么做:(use "git add" to track)。如圖:


image

(3)把當(dāng)前文件夾下的新增和刪除全部放在暫存區(qū)

$ git add .
再次查看:
$ git status

如查看提示:use "git reset HEAD <file>..." to unstage,即可以將文件從暫存區(qū)拿出來。

(4)把暫存區(qū)的更新提交到本地庫

$ git commit -am "add file"

關(guān)于-am "add file"中的-am可以看一下份資料:
git commit -m 與 git commit -am 的區(qū)別?git commit -m 與 git commit -am 的區(qū)別

而-am "add file"即說明文件以什么修改狀態(tài)(如修改?添加資料?)即被跟蹤暫存等待本地提交。

再次查看
$ git status

提示push

推送本地倉庫
$ git push origin master
image

4、修改、刪除文件【遠(yuǎn)程庫?本地庫】

(1)把遠(yuǎn)程庫拉下合并(merge)到本地倉庫

$ git pull

(2)

修改文件
$ vim a.md

刪除文件
$ rm -rf a.md
$ git add .

(3)#添加文件至?xí)捍鎱^(qū)

$ git add  .

(4)#提交至本地庫

$ git commit -am "字符串"

注:這里需要注意的是如果提交消息包含大量字符串,提交參數(shù)不用加m

(5)#推送遠(yuǎn)程庫

$ git push origin master

5、多人協(xié)作

(1)有一人在遠(yuǎn)程修改文件,你不知道仍繼續(xù)在終端修改提交文件

$ touch b.md
$ git add .
$ git commit -am "add b"
$ git push

終端修改,出現(xiàn)拒絕的報錯,如:


圖片

(3)這個報錯說明終端push遠(yuǎn)程文件失敗。即在遠(yuǎn)程庫的一些已修改的文件沒有更新到本地,本地文件夾里沒有相應(yīng)的更新,你需要在本地終端同步更新遠(yuǎn)程庫所更新過的文件。

(4)被多人協(xié)作過的遠(yuǎn)程庫拉下本地更新一下,即執(zhí)行:

$ git pull

自動將更新后的遠(yuǎn)程庫拉回來,并merge(合并)你所更新的文件,進(jìn)入一個vim編輯器,編輯需要更新的文件

$ vim b.md

你要怎么樣都可以,不想干嘛就保存退出,不再說vim的使用方法了。趕緊看下一步:

$ git add .
$ git commit -am "merge"
$ git push

結(jié)論:
每一次在本地庫完成自己的文件更新,都需要git pull一下,讓遠(yuǎn)程庫在本地與你的文件合并(merge),在推送(push)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉庫完整的鏡像下來。這樣一來,任何一處協(xié)同...
    __silhouette閱讀 16,214評論 5 147
  • Git 命令行學(xué)習(xí)筆記 Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉庫完整的鏡像下來...
    sunnyghx閱讀 4,163評論 0 11
  • 時間的腳步 永不駐足, 每一步都丈量著過往。 時光途經(jīng)青春, 步伐匆匆, 有遺憾和失落, 也有驚喜和感動。 時間的...
    晨總之母閱讀 309評論 0 1
  • 與友人聊天,可以讓自己成長! 每年我們都會去給高姐拜年,每次聊天都會有新的感受。比如說買學(xué)位房這件事情,老...
    蘭欣生命之旅閱讀 443評論 1 2

友情鏈接更多精彩內(nèi)容