Git學習筆記

Git

說明

  • 分布式版本控制系統(tǒng)
  • 只能跟蹤文本文件的改動
  • 使用標準的UTF-8編碼
  • Notepad++暇赤,默認編碼設置為UTF-8 without BOM

Git安裝

-Git安裝成功后笨篷,還需要設置惭等,在命令行輸入:

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

創(chuàng)建版本庫(倉庫)

  1. mkdir 路徑及名稱
$ mkdir D:/Mygit
$ cd D:/Mygit
$ pwd

pwd 命令用于顯示當前目錄。
Windows系統(tǒng)下蜗搔,確保目錄名(包括父目錄)不包含中文壳贪。

  1. 通過git init 命令將目錄變成Git可以管理的倉庫:
$ git init
  1. 把文件添加到版本庫
    編寫一個readme.txt的文件氢妈,內(nèi)容如下:
Git is a version control system
Git is free software

編寫方式

$ vi readme.txt

退出vi編寫:esc + :+ wq

  • 第一步:用git add將文件添加到倉庫
$ git add readme.txt
  • 第二步:用git commit將文件提交到倉庫
$ git commit -m "wrote a readme file"

-m后面輸入的是本次提交的說明
commit可以一次提交多個文件眼坏,所以可以多次add不同的文件

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

修改添加的文件

完成添加和提交readme.txt文件菇肃,修改操作如下:
$ vi readme.txt

# 修改內(nèi)容
Git is a distributed version control system.
Git is free software.

運行git status查看結果


上述提示信息為readme.txt文件已經(jīng)被修改地粪,但是還未提交更改
運行git diff查看被修改的內(nèi)容

確定修改結果后,按照相同步驟提交

$ git status
# 運行git status再次查看當前倉庫的狀態(tài)
git status


將要提交被修改的readme.txt文件

# 提交
git commit -m "add distributed"


修改結束

版本回退

再次修改readme.txt文件并提交修改

  • 修改內(nèi)容如下
Git is a distributed version control system.
Git is free software distributed under the GPL.

commit的作用就是將文件修改到一定程度以后保存修改的文件琐谤,并且不會改變以前的版本蟆技,一旦文件改亂或者誤刪了某個文件,可以從最近的commit恢復,然后繼續(xù)修改

  • git log命令查看歷史記錄
    git log

    git log命令顯示從最近到最遠的提交日志
  • git log --pretty=oneline使提示信息的輸出更為簡潔明了
  • 開始回退到指定版本
    Git中质礼,用HEAD表示當前版本(最新提交的文件)旺聚,上一個版本HEAD^,第50個版本HEAD~50
  • git reset回溯到指定版本
$ git reset --hard HEAD^^
HEAD is now at wrote a readme file

cat readme.txt查看當前版本內(nèi)容

  • 指定回到未來的某個版本
    git reset --hard 版本號
  • git reflog查看所操作的每一次命令
  • HEAD指向的版本就是當前版本,因此眶蕉,Git允許我們在版本的歷史之間穿梭砰粹,使用git reset --hard commit_id
  • git log可以查看提交歷史,以確定要回退到哪個版本
  • 要重返新的版本(未來)造挽,用git reflog查看命令歷史碱璃,以便要確定回到(未來)哪個版本

工作區(qū)和暫存區(qū)

  • Mygit就是工作區(qū)
    -工作區(qū)隱藏的目錄.git叫做Git的版本庫,版本庫里最重要的部分是stage(或者index)饭入,叫做暫存區(qū)嵌器,還包括第一個分支master,以及指向master的一個指針HEAD谐丢。

    需要提交的文件修改一律放到暫存區(qū)爽航,然后,可以一次性提交暫存區(qū)的所有修改
    再次修改readme.txt文檔:
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.

然后新增加License.txt文件乾忱,用git status查看當前狀態(tài)


readme.txt被修改了讥珍;License.txt從未被修改,狀態(tài)為Untracked窄瘟。
將兩個文件夾都add衷佃,查看狀態(tài)

此刻暫存區(qū)如下圖所示:

執(zhí)行git commit一次性將暫存區(qū)的文件提交到分支master


提交結束,工作區(qū)clear


管理進行的修改

再次修改readme.txt文件

Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes.


繼續(xù)修改readme.txt寞肖,然后提交

查看狀態(tài)

此時,第二次修改未被提交衰腌,原因是第二次提交并未執(zhí)行git add新蟆,也就是說,第二次修改的文件依舊存儲在工作區(qū)右蕊,并未add到暫存區(qū)(stage)
git diff HEAD -- readme.txt查看工作區(qū)版本和版本庫中的最新版本的區(qū)別:

繼續(xù)執(zhí)行git add琼稻,把第二次修改提交,隨后git commit -m

撤銷修改

  • 文件修改出錯


  1. 只是在工作區(qū)進行修改饶囚,并未執(zhí)行git addgit commit -m " "命令
  • 可以執(zhí)行git checkout -- readme.txt丟棄工作區(qū)的修改
  1. 工作區(qū)修改出錯帕翻,并且已經(jīng)git add到暫存區(qū)

    但是并未執(zhí)行git commit
  • 用命令git reset HEAD readme.txt可以把暫存區(qū)的修改撤銷掉(unstage),重新放回到工作區(qū):

  • 丟棄工作區(qū)修改


刪除文件

  • 添加新文件


  • 執(zhí)行rm命令直接在文件管理器中刪除test.txt文件
    rm test.txt

此時執(zhí)行的操作有兩種:

  • 確定要刪除版本庫中的文件,執(zhí)行命令git rm,然后git commit

    此時版本庫中的文件已被刪除
  • 文件誤刪(版本庫中存有)萝风,將誤刪的文件恢復到最新版本嘀掸,執(zhí)行git checkout -- test.txt

.......未完待續(xù)

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市规惰,隨后出現(xiàn)的幾起案子睬塌,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件揩晴,死亡現(xiàn)場離奇詭異勋陪,居然都是意外死亡,警方通過查閱死者的電腦和手機硫兰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門诅愚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人劫映,你說我怎么就攤上這事违孝。” “怎么了苏研?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵等浊,是天一觀的道長。 經(jīng)常有香客問我摹蘑,道長筹燕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任衅鹿,我火速辦了婚禮撒踪,結果婚禮上,老公的妹妹穿的比我還像新娘大渤。我一直安慰自己制妄,他們只是感情好,可當我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布泵三。 她就那樣靜靜地躺著耕捞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪烫幕。 梳的紋絲不亂的頭發(fā)上俺抽,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天,我揣著相機與錄音较曼,去河邊找鬼磷斧。 笑死,一個胖子當著我的面吹牛捷犹,可吹牛的內(nèi)容都是我干的弛饭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼萍歉,長吁一口氣:“原來是場噩夢啊……” “哼侣颂!你這毒婦竟也來了?” 一聲冷哼從身側響起枪孩,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤横蜒,失蹤者是張志新(化名)和其女友劉穎胳蛮,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丛晌,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡仅炊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了澎蛛。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抚垄。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖谋逻,靈堂內(nèi)的尸體忽然破棺而出呆馁,到底是詐尸還是另有隱情,我是刑警寧澤毁兆,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布浙滤,位于F島的核電站,受9級特大地震影響气堕,放射性物質(zhì)發(fā)生泄漏纺腊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一茎芭、第九天 我趴在偏房一處隱蔽的房頂上張望揖膜。 院中可真熱鬧,春花似錦梅桩、人聲如沸壹粟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽趁仙。三九已至,卻和暖如春垦页,著一層夾襖步出監(jiān)牢的瞬間雀费,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工外臂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留坐儿,地道東北人律胀。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓宋光,卻偏偏與公主長得像,于是被迫代替她去往敵國和親炭菌。 傳聞我的和親對象是個殘疾皇子罪佳,可洞房花燭夜當晚...
    茶點故事閱讀 44,955評論 2 355

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

  • Git常用語法 [TOC] Git簡介 描述 ? Git(讀音為/g?t/。)是一個開源的分布式版本控制系統(tǒng)黑低,...
    君惜丶閱讀 3,518評論 0 13
  • Git教程 一赘艳、Git簡介 1.1. Git的誕生1.2.集中式的vs分布式 二酌毡、安裝Git 三、創(chuàng)建版本庫 四蕾管、...
    曹淵說創(chuàng)業(yè)閱讀 947評論 0 2
  • ----------------- Git 學習 ------------------ Git 簡介 Git...
    Junting閱讀 2,237評論 0 3
  • 在日子浸染下的臉 都帶著些許滄桑和故事 一段文字 寥寥數(shù)字 一首歌 單曲回放 給予你力所能及的溫暖 曾經(jīng) 理想壯...
    仰望天空的雙魚閱讀 368評論 0 0
  • 本周金句:沒有人可以隨便成功枷踏,但總有些人每天加班到深夜卻不如別人隨便做做。根本的原因就是他們不夠?qū)W㈥瑳]有把一件事...
    米三水閱讀 804評論 1 0