Git 使用筆記

集中式和分布式管理代碼的區(qū)別

集中式:集中式版本控制系統(tǒng),版本庫是集中存放在中央服務(wù)器的眉踱,而干活的時(shí)候挤忙,用的都是自己的電腦,所以要先從中央服務(wù)器取得最新的版本谈喳,然后開始干活册烈,干完活了,再把自己的活推送給中央服務(wù)器婿禽。

分布式:分布式版本控制系統(tǒng)沒有“中央服務(wù)器”赏僧,每個(gè)人的電腦上都是一個(gè)完整的版本庫,這樣扭倾,你工作的時(shí)候淀零,就不需要聯(lián)網(wǎng)了,因?yàn)榘姹編炀驮谀阕约旱碾娔X上膛壹。既然每個(gè)人電腦上都有一個(gè)完整的版本庫驾中,那多個(gè)人如何協(xié)作呢?比方說你在自己電腦上改了文件A模聋,你的同事也在他的電腦上改了文件A肩民,這時(shí),你們倆之間只需把各自的修改推送給對方链方,就可以互相看到對方的修改了持痰。

Git安裝

  1. linux 上安裝 首先看電腦有沒有安裝git 在終端使用命令git
$ git
The program 'git' is currently not installed. You can install it by typing:
sudo apt-get install git

根據(jù)返回的信息可以看到?jīng)]有安裝git 下面返回了 安裝方法: sudo apt-get install git

  1. 在Mac上按轉(zhuǎn)git
    在Mac上安裝git 特別簡單 ,直接從AppStore安裝Xcode祟蚀,Xcode集成了Git 工窍。Xcode是Apple官方IDE,功能非常強(qiáng)大前酿,是開發(fā)Mac和iOS App的必選裝備移剪,而且是免費(fèi)的!

3.在windows上安裝git
在Windows上使用Git薪者,可以從Git官網(wǎng)直接下載安裝程序,(網(wǎng)速慢的同學(xué)請移步國內(nèi)鏡像)剿涮,然后按默認(rèn)選項(xiàng)安裝即可言津。
安裝完成后,在開始菜單里找到“Git”->“Git Bash”取试,蹦出一個(gè)類似命令行窗口的東西悬槽,就說明Git安裝成功!

Git的使用

1.創(chuàng)建一個(gè)文件夾(項(xiàng)目)

$ mkdir Project
$ cd Project
$ pwd
/Users/yahi/Desktop/Ya/個(gè)人/Project

2.通過git init命令把這個(gè)目錄變成Git可以管理的倉庫(repository)

git init
Initialized empty Git repository in /Users/yahi/Desktop/Ya/個(gè)人/Project

瞬間Git就把倉庫建好了瞬浓,而且告訴你是一個(gè)空的倉庫(empty Git repository)初婆,細(xì)心的讀者可以發(fā)現(xiàn)當(dāng)前目錄下多了一個(gè).git的目錄,這個(gè)目錄是Git來跟蹤管理版本庫的,沒事千萬不要手動修改這個(gè)目錄里面的文件磅叛,不然改亂了屑咳,就把Git倉庫給破壞了。
如果你沒有看到.git目錄弊琴,那是因?yàn)檫@個(gè)目錄默認(rèn)是隱藏的兆龙,用ls -ah命令就可以看見。

3.使用
在項(xiàng)目中創(chuàng)建一個(gè)txt文本,readme.txt敲董,內(nèi)容如下:
Git is a version control system.
Git is free software.
一定要放到learngit目錄下(子目錄也行)紫皇,因?yàn)檫@是一個(gè)Git倉庫,放到其他地方Git再厲害也找不到這個(gè)文件腋寨。
和把大象放到冰箱需要3步相比聪铺,把一個(gè)文件放到Git倉庫只需要兩步。
1.用命令git add告訴Git萄窜,把文件添加到倉庫:

$ git add readme.txt

執(zhí)行上面的命令铃剔,沒有任何顯示,這就對了脂倦,Unix的哲學(xué)是“沒有消息就是好消息”番宁,說明添加成功。
2.用命令git commit告訴Git赖阻,把文件提交到倉庫:

$ git commit -m "wrote a readme file"
[master (root-commit) cb926e7] wrote a readme file
 1 file changed, 2 insertions(+)
 create mode 100644 readme.txt

簡單解釋一下git commit命令蝶押,-m后面輸入的是本次提交的說明,可以輸入任意內(nèi)容火欧,當(dāng)然最好是有意義的棋电,這樣你就能從歷史記錄里方便地找到改動記錄。
git commit命令執(zhí)行成功后會告訴你苇侵,1個(gè)文件被改動(我們新添加的readme.txt文件)赶盔,插入了兩行內(nèi)容(readme.txt有兩行內(nèi)容)。
為什么Git添加文件需要add榆浓,commit一共兩步呢于未?因?yàn)閏ommit可以一次提交很多文件,所以你可以多次add不同的文件陡鹃,比如:

$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."

我們已經(jīng)成功地添加并提交了一個(gè)readme.txt文件烘浦,現(xiàn)在,是時(shí)候繼續(xù)工作了萍鲸,于是闷叉,我們繼續(xù)修改readme.txt文件,改成如下內(nèi)容:

Git is a distributed version control system.
Git is free software.

現(xiàn)在脊阴,運(yùn)行g(shù)it status命令看看結(jié)果:

$ git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#    modified:   readme.txt
#
no changes added to commit (use "git add" and/or "git commit -a")

git status命令可以讓我們時(shí)刻掌握倉庫當(dāng)前的狀態(tài)握侧,上面的命令告訴我們蚯瞧,readme.txt被修改過了,但還沒有準(zhǔn)備提交的修改品擎。
雖然Git告訴我們r(jià)eadme.txt被修改了埋合,但如果能看看具體修改了什么內(nèi)容,自然是很好的孽查。比如你休假兩周從國外回來饥悴,第一天上班時(shí),已經(jīng)記不清上次怎么修改的readme.txt盲再,所以西设,需要用git diff這個(gè)命令看看:

$ git diff readme.txt 
diff --git a/readme.txt b/readme.txt
index 46d49bf..9247db6 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,2 @@
-Git is a version control system.
+Git is a distributed version control system.
 Git is free software.

git diff顧名思義就是查看difference,顯示的格式正是Unix通用的diff格式答朋,可以從上面的命令輸出看到贷揽,我們在第一行添加了一個(gè)“distributed”單詞。
知道了對readme.txt作了什么修改后梦碗,再把它提交到倉庫就放心多了禽绪,提交修改和提交新文件是一樣的兩步,第一步是git add:

$ git add readme.txt

同樣沒有任何輸出洪规。在執(zhí)行第二步git commit之前印屁,我們再運(yùn)行g(shù)it status看看當(dāng)前倉庫的狀態(tài):

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   readme.txt
#

git status告訴我們,將要被提交的修改包括readme.txt斩例,下一步雄人,就可以放心地提交了:

$ git commit -m "add distributed"
[master ea34578] add distributed
 1 file changed, 1 insertion(+), 1 deletion(-)

提交后,我們再用git status命令看看倉庫的當(dāng)前狀態(tài):

$ git status
# On branch master
nothing to commit (working directory clean)

Git告訴我們當(dāng)前沒有需要提交的修改念赶,而且础钠,工作目錄是干凈(working directory clean)的。

Git沖突解決

git stash: 備份當(dāng)前的工作區(qū)的內(nèi)容叉谜,從最近的一次提交中讀取相關(guān)內(nèi)容旗吁,讓工作區(qū)保證和上次提交的內(nèi)容一致。同時(shí)停局,將當(dāng)前的工作區(qū)內(nèi)容保存到Git棧中很钓。
git pull:拉取服務(wù)器上的代碼;git stash pop: 從Git棧中讀取最近一次保存的內(nèi)容董栽,恢復(fù)工作區(qū)的相關(guān)內(nèi)容码倦。由于可能存在多個(gè)Stash的內(nèi)容,所以用棧來管理裆泳,pop會從最近的一個(gè)stash中讀取內(nèi)容并恢復(fù)。
git stash list: 顯示Git棧內(nèi)的所有備份柠硕,可以利用這個(gè)列表來決定從那個(gè)地方恢復(fù)工禾。
git stash clear: 清空Git棧运提。此時(shí)使用gitg等圖形化工具會發(fā)現(xiàn),原來stash的哪些節(jié)點(diǎn)都消失了闻葵。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末民泵,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子槽畔,更是在濱河造成了極大的恐慌栈妆,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件厢钧,死亡現(xiàn)場離奇詭異鳞尔,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)早直,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進(jìn)店門寥假,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人霞扬,你說我怎么就攤上這事糕韧。” “怎么了喻圃?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵萤彩,是天一觀的道長。 經(jīng)常有香客問我斧拍,道長雀扶,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任饮焦,我火速辦了婚禮怕吴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘县踢。我一直安慰自己转绷,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布硼啤。 她就那樣靜靜地躺著议经,像睡著了一般。 火紅的嫁衣襯著肌膚如雪谴返。 梳的紋絲不亂的頭發(fā)上煞肾,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天,我揣著相機(jī)與錄音嗓袱,去河邊找鬼籍救。 笑死,一個(gè)胖子當(dāng)著我的面吹牛渠抹,可吹牛的內(nèi)容都是我干的蝙昙。 我是一名探鬼主播律适,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼胆筒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起辰妙,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤语淘,失蹤者是張志新(化名)和其女友劉穎段磨,沒想到半個(gè)月后陋桂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡荆几,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年吓妆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伴郁。...
    茶點(diǎn)故事閱讀 40,615評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡耿战,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出焊傅,到底是詐尸還是另有隱情剂陡,我是刑警寧澤,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布狐胎,位于F島的核電站鸭栖,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏握巢。R本人自食惡果不足惜晕鹊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望暴浦。 院中可真熱鬧溅话,春花似錦、人聲如沸歌焦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽独撇。三九已至屑墨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間纷铣,已是汗流浹背卵史。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留搜立,地道東北人以躯。 一個(gè)月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像啄踊,于是被迫代替她去往敵國和親忧设。 傳聞我的和親對象是個(gè)殘疾皇子色鸳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評論 2 359