Git基礎(chǔ)

獲取git倉庫

在現(xiàn)有目錄中初始化倉庫(如果你打算使用Git對現(xiàn)有項(xiàng)目進(jìn)行管理)

$ git init

執(zhí)行完會在當(dāng)前目錄下創(chuàng)建一個(gè).git的子目錄盏道,這個(gè)子目錄含有你初始化的Git倉庫中所有的必須文件
克隆現(xiàn)有的倉庫(Git 倉庫中的每一個(gè)文件的每一個(gè)版本都將被拉取下來)

$ git clone https://github.com/libgit2/libgit2
//自定義本地倉庫的名字
$ git clone https://github.com/libgit2/libgit2 mylibgit

添加提交文件

git add

檢查當(dāng)前文件狀態(tài)

$ git status
//工作目錄相當(dāng)干凈越锈,所有已跟蹤的文件在上次提交之后都未被更改過
On branch master
nothing to commit, working directory clean
//創(chuàng)建新的README文件
$ echo 'My Project' > README
//檢查當(dāng)前文件狀態(tài)
$ git status
//有一個(gè)新的未跟蹤文件:Git之前的快照中沒有這些文件
On branch master
No commits yet
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        README
nothing added to commit but untracked files present (use "git add" to track)
//跟蹤README文件
$ git add README
//查看當(dāng)前文件狀態(tài)
$ git status
//當(dāng)前文件狀態(tài)已被跟蹤并且處于暫存狀態(tài)
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)
    new file:   README
//暫存已修改文件嫡纠,查看狀態(tài)
$ git status
//結(jié)果 Changes not staged for commit: 已跟蹤文件的內(nèi)容發(fā)生了變化伊佃,但還沒有放到暫存區(qū)碳褒。 README同時(shí)出現(xiàn)了暫存區(qū)和非暫存區(qū)    如果提交   會提交最后一次運(yùn)行g(shù)it add的版本   不是當(dāng)前的最新
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)
    new file:   README
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
//將已經(jīng)修改的文件加入到暫存區(qū)
$ git add README
//查看當(dāng)前文件的狀態(tài)
$ git status
//結(jié)果 狀態(tài)為  被提交
On branch master
No commits yet
Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   README

忽略文件

 一般我們總會有些文件無需納入Git的管理犀变,也不需要出現(xiàn)在未跟蹤文件列表 
 比如日志文件茸歧,或者編譯過程中創(chuàng)建的臨時(shí)文件等
 我們可以創(chuàng)建一個(gè)名為 .gitignore 的文件,列出要忽略的文件模式
$ cat .gitignore
//所有以 .o 或 .a 結(jié)尾的文件
*.[oa]
//忽略所有以波浪符(~)結(jié)尾的文件
*~

查看修改內(nèi)容

查看未暫存的文件修改了哪一部分 只顯示尚未暫存的改動(dòng)丈挟,而不是自上次提交以來所做的所有改動(dòng)

$ git diff
//結(jié)果
diff --git a/README b/README
index 17589d7..4732b90 100644
--- a/README
+++ b/README
@@ -1,2 +1,2 @@
 o My Project
-封建帝國海軍返還甲方刁卜,給
\ No newline at end of file
+封建帝國海軍返還甲方,給反倒是三國殺
\ No newline at end of file

查看已暫存的將要添加到下次提交的內(nèi)容

git diff --cached
git diff --staged  更高級版本
//結(jié)果
diff --git a/README b/README
new file mode 100644
index 0000000..17589d7
--- /dev/null
+++ b/README
@@ -0,0 +1,2 @@
+o My Project
+封建帝國海軍返還甲方曙咽,給
\ No newline at end of file

提交更新 git commit

提交之前先查看項(xiàng)目狀態(tài) 是不是都暫存起來 才會運(yùn)行提交命令

git commit -m   //添加注釋
//結(jié)果
$ git commit -m '一個(gè)文件'
[master (root-commit) f8db1c9] 一個(gè)文件
 1 file changed, 2 insertions(+)
 create mode 100644 README
//跳過使用暫存區(qū)域   Git 就會自動(dòng)把所有已經(jīng)跟蹤過的文件暫存起來一并提交
$ git commit -a -m '一個(gè)文件'

//簡單從工作目錄中手工刪除文件

$ rm README
//結(jié)果
$ git status
On branch master
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
        deleted:    README
no changes added to commit (use "git add" and/or "git commit -a")
//記錄此次移除文件的操作
git rm README

移動(dòng)文件

$ git mv README.md README

查看提交歷史

//會按提交時(shí)間列出所有的更新蛔趴,最近的更新排在最上面
git log
//-p 顯示每次提交的內(nèi)容差異
git log -p
//-2 表示最近2次提交
git log -p -2
//--stat   每次提交的簡略的統(tǒng)計(jì)信息
git log --stat

撤銷操作

//提交完才發(fā)現(xiàn)漏掉了幾個(gè)文件沒有添加,或者是提交的信息寫錯(cuò)了
$ git commit --amend
//例如例朱,你提交后發(fā)現(xiàn)忘記了暫存某些需要的修改孝情,可以像下面這樣操作:
$ git commit -m 'initial commit'
$ git add forgotten_file
$ git commit --amend

取消暫存文件

你已經(jīng)修改了兩個(gè)文件并且想要將它們作為兩次獨(dú)立的修改提交,但是卻意外地輸入了 git add * 暫存了它們兩個(gè)茉继。 如何只取消暫存兩個(gè)中的一個(gè)呢?

$ git reset HEAD CONTRIBUTING.md

撤銷對文件的修改

//如果你并不想保留對 CONTRIBUTING.md 文件的修改怎么辦蚀乔? 你該如何方便地撤消修改——將它還原成上次提交時(shí)的樣子(或者剛克隆完的樣子烁竭,或者剛把它放入工作目錄時(shí)的樣子)?

$ git checkout -- CONTRIBUTING.md

遠(yuǎn)程倉庫的使用

查看遠(yuǎn)程倉庫
git remote
//-v吉挣,會顯示需要讀寫遠(yuǎn)程倉庫使用的 Git 保存的簡寫與其對應(yīng)的 URL派撕。
$ git remote -v
//結(jié)果
origin  https://github.com/schacon/ticgit (fetch)

添加遠(yuǎn)程倉庫
git remote add <shortname> <url> 
$ git remote add pb https://github.com/paulboone/ticgit
如果你想拉取某個(gè)倉庫中有但你沒有的信息
$ git fetch pb

查看某個(gè)遠(yuǎn)程倉庫
$ git remote show origin

Git標(biāo)簽

列出標(biāo)簽

git tag

創(chuàng)建附注標(biāo)簽

$ git tag -a v1.4 -m "my version 1.4"
-a 創(chuàng)建一個(gè)附注標(biāo)簽
-m 選項(xiàng)指定了一條將會存儲在標(biāo)簽中的信息

創(chuàng)建輕量標(biāo)簽 只需要提供標(biāo)簽名字

$ git tag v1.4-lw

刪除輕量級標(biāo)簽

$ git tag -d v1.4-lw

Git別名 git config

$ git config --global alias.co checkout

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市睬魂,隨后出現(xiàn)的幾起案子终吼,更是在濱河造成了極大的恐慌,老刑警劉巖氯哮,帶你破解...
    沈念sama閱讀 216,843評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件际跪,死亡現(xiàn)場離奇詭異,居然都是意外死亡喉钢,警方通過查閱死者的電腦和手機(jī)姆打,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肠虽,“玉大人幔戏,你說我怎么就攤上這事∷翱危” “怎么了闲延?”我有些...
    開封第一講書人閱讀 163,187評論 0 353
  • 文/不壞的土叔 我叫張陵痊剖,是天一觀的道長。 經(jīng)常有香客問我垒玲,道長陆馁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,264評論 1 292
  • 正文 為了忘掉前任侍匙,我火速辦了婚禮氮惯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘想暗。我一直安慰自己妇汗,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,289評論 6 390
  • 文/花漫 我一把揭開白布说莫。 她就那樣靜靜地躺著杨箭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪储狭。 梳的紋絲不亂的頭發(fā)上互婿,一...
    開封第一講書人閱讀 51,231評論 1 299
  • 那天,我揣著相機(jī)與錄音辽狈,去河邊找鬼慈参。 笑死,一個(gè)胖子當(dāng)著我的面吹牛刮萌,可吹牛的內(nèi)容都是我干的驮配。 我是一名探鬼主播,決...
    沈念sama閱讀 40,116評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼着茸,長吁一口氣:“原來是場噩夢啊……” “哼壮锻!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起涮阔,我...
    開封第一講書人閱讀 38,945評論 0 275
  • 序言:老撾萬榮一對情侶失蹤猜绣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后敬特,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體掰邢,經(jīng)...
    沈念sama閱讀 45,367評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,581評論 2 333
  • 正文 我和宋清朗相戀三年伟阔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了尸变。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,754評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡减俏,死狀恐怖召烂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情娃承,我是刑警寧澤奏夫,帶...
    沈念sama閱讀 35,458評論 5 344
  • 正文 年R本政府宣布怕篷,位于F島的核電站,受9級特大地震影響酗昼,放射性物質(zhì)發(fā)生泄漏廊谓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,068評論 3 327
  • 文/蒙蒙 一麻削、第九天 我趴在偏房一處隱蔽的房頂上張望蒸痹。 院中可真熱鬧,春花似錦呛哟、人聲如沸叠荠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽榛鼎。三九已至,卻和暖如春鳖孤,著一層夾襖步出監(jiān)牢的瞬間者娱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評論 1 269
  • 我被黑心中介騙來泰國打工苏揣, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留黄鳍,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,797評論 2 369
  • 正文 我出身青樓平匈,卻偏偏與公主長得像框沟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子吐葱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,654評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 簡介 Git是一個(gè)開源的分布式版本控制系統(tǒng)街望,用于敏捷高效地處理任何或小或大的項(xiàng)目校翔。 Git 與常用的版本控制工具 ...
    閩越布衣閱讀 2,741評論 0 18
  • Git基礎(chǔ) 獲取 Git 倉庫 在現(xiàn)有目錄中初始化倉庫 如果你打算使用 Git 來對現(xiàn)有的項(xiàng)目進(jìn)行管理弟跑,你只需要進(jìn)...
    Tomcy_110閱讀 281評論 0 1
  • Git 基礎(chǔ) 第一章 下載以及使用 下載地址: https://github.com/ 1.1配置git ? ...
    LinDaiDai_霖呆呆閱讀 742評論 1 8
  • 本帖大部分源自菜鳥教程 Git(讀音為/g?t/。)是一個(gè)開源的分布式版本控制系統(tǒng)防症,可以有效孟辑、高速的處理從很小到非...
    咸魚_dd61閱讀 235評論 0 0
  • 總會在某一個(gè)瞬間特別想念外婆,想念妹妹蔫敲,甚至想念媽媽饲嗽。 越長大就越害怕離開家里。曾經(jīng)的小夢想是長大以后一定要離開家...
    張小仙吖閱讀 375評論 1 2