史上最淺顯易懂的Git教程(1)

首先,本教程完全面向初學(xué)者小白,沒有接觸過版本控制的人也可以輕松學(xué)習(xí)本教程。
其次,本教程極具實用性,邊學(xué)邊練。而且本教程介紹的都是git基本命令,掌握了這些,你就可以玩轉(zhuǎn)git。
學(xué)習(xí)git之前,當然首先要了解一下git到底是干嘛用的。
Git是目前世界上最先進的分布式版本控制系統(tǒng)(沒有之一)。

  1. 什么是版本控制?
    舉個例子,在你寫論文的時候,你肯定有過這種經(jīng)歷,刪除一個段落,但是又 怕刪了之后找不回來,于是,你點擊另存,保存了另一個文件,于是,一個禮拜之后, 你的文件夾就變成了無數(shù)個包括“編輯版”、“最終版”、“不改版”等等等等的word文件,看著這一堆文件,是不是頭都大了?
    更要命的是,論文是好多人一起寫的,然后你的同學(xué)拷走了你都不知道是哪個版本的文檔,自己去修改了,一個禮拜后,他拿著修改好的文檔,回來說,我寫完了,把這個合起來吧。。。然而,你并不知道他到底改了哪些東西,而你自己改好的東西要想合并起來。。。想想都頭大。
    然而,有了git這個利器,這些浪費時間的操作根本不需要你和你的同學(xué)來做,它不僅能記錄改動操作,還能記錄改動了哪里,是誰改動的,是不是很方便??
    好的,廢話不多說,開始學(xué)習(xí)。
    首先,你可以試著輸入git,看看系統(tǒng)有沒有安裝Git:
    git
    The program 'git' is currently not installed.
    You can install it by typing:sudoapt-getinstall git
    像上面的命令,有很多Linux會友好地告訴你Git沒有安裝,還會告訴你如何安裝Git。
    如果你碰巧用Debian或Ubuntu Linux,通過一條sudo apt-get install git就可以直接完成Git的安裝,非常簡單。
    安裝完成后,還需要最后一步設(shè)置,在命令行輸入:
    git config --global user.name "Your Name"
    git config --global user.email "email@example.com"
    因為Git是分布式版本控制系統(tǒng),所以,每個機器都必須自報家門:你的名字和Email地址。你也許會擔(dān)心,如果有人故意冒充別人怎么辦?這個不必擔(dān)心,首先我們相信大家都是善良無知的群眾,其次,真的有冒充的也是有辦法可查的。
    注意git config命令的--global參數(shù),用了這個參數(shù),表示你這臺機器上所有的Git倉庫都會使用這個配置,當然也可以對某個倉庫指定不同的用戶名和Email地址。

創(chuàng)建版本庫

安裝好git后,我們就來創(chuàng)建第一個repository(倉庫),可以理解成一個目錄,這個目錄里面所有的文件都會被git管理起來,每個文件的刪除,修改都能被git跟蹤到,便于操作和追蹤歷史。
首先創(chuàng)建一個新目錄

       mkdir learngit
       cd learngit

然后進入這個目錄
建立git倉庫git init
瞬間就建好了一個倉庫,我們可以看到,目錄文件里多了一個.git后綴的隱藏文件夾,千萬不要修改這個文件夾下的任何東西,否則目錄就被破壞了。
接著在目錄下新建一個文檔,learngit.txt,內(nèi)容我們先這樣寫

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

然后我們使用git add
這個命令,將文件添加到倉庫:

        git add readme.txt

執(zhí)行上面的命令之后,應(yīng)該是沒有任何提示的,“沒有消息就是好消息”,對我們來說,這個文件已經(jīng)被添加到git倉庫中了
接下來,我們使用git commit
這個命令,將文件提交到倉庫中:

         git commit -m "add file readme.txt"

-m
后面的文字是本次提交到倉庫中的注釋,每次提交時可以告訴大家我這次干了什么git commit
命令成功后,會告訴你一個文件被改動,插入了兩行內(nèi)容

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

是不是很簡單呢?
版本回滾

  1. 修改文件
    我們已經(jīng)成功添加提交了一個readme.txt 的文件了,我們可以把文件內(nèi)容修改成如下內(nèi)容:
    Git is a distributed version control system.
    Git is free software.
    現(xiàn)在,我們運行g(shù)it 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
命令可以讓我們實時掌握倉庫當前的狀態(tài),上面的命令告訴我們,readme.txt被修改過了,但還沒有準備提交的修改。而且git不僅可以告訴我們修改過,還可以告訴我們修改了什么,我們需要用git diff
查看修改了什么內(nèi)容
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.

經(jīng)過確定修改了什么內(nèi)容后, 我們就可以用git add
添加到倉庫中了,然后使用git status
查看當前倉庫狀態(tài):
git告訴我們,將要提交的修改包含readme.txt,確認后,我們就可以放心的提交commit了,運行

    git commit -m "add distributed"

就成功提交到倉庫中了。
2.版本回退
目前為止,我們已經(jīng)學(xué)會了修改文件,接下來,我們把readme.txt內(nèi)容改成這樣:

        Git is a distributed version control system.
        Git is free software distributed under the GPL.

然后嘗試提交

        git add readme.txt
       git commit -m "append GPL"

可是你提交的時候突然發(fā)現(xiàn),修改了一些重要文件,程序出錯了!沒關(guān)系,git為你提供了每一個版本的“快照”,每一次commit都像是一個“快照”,你可以隨時恢復(fù)它們。我們可以用git log
查看你提交的每個版本

         commit 82146a74cca8751e7de98aef842a8e11a63c89fcAuthor: a12345rwaj <mtrabc@vip.qq.com>Date: Thu Jul 7 11:25:13 2016 +0800append GPLcommit aa4825f281d77d9dbeb963b032941c4655afa10fAuthor: a12345rwaj <mtrabc@vip.qq.com>Date: Thu Jul 7 11:24:47 2016 +0800add distributedcommit 5e0c813a9fef584759abb1509c26465f6a54b13fAuthor: a12345rwaj <mtrabc@vip.qq.com>Date: Thu Jul 7 11:23:37 2016 +0800wrote a readme file

現(xiàn)在,我們我們要把當前版本“append GPL”回退到上一個版本“add distributed”,就可以使用git reset
命令:

              git reset --hard HEAD^HEAD is now at ea34578 add distributed

現(xiàn)在我們再查看一下文檔中的內(nèi)容,是不是已經(jīng)變回上一個版本的內(nèi)容了?是不是很方便呢~現(xiàn)在,你發(fā)現(xiàn)自己犯了一個非常嚴重的錯誤,想返回剛才創(chuàng)建的那個版本,怎么辦呢,也非常簡單:

              git reset --hard 82146a

版本號沒必要寫全,git很智能,可以自動匹配,現(xiàn)在再看看文檔,是不是又變回來了?
基本操作我們已經(jīng)了解了,接下來就是利用github進行遠程倉庫操作,我們下一章再講。

最后編輯于
?著作權(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)容

  • 首先,本教程完全面向初學(xué)者小白,沒有接觸過版本控制的人也可以輕松學(xué)習(xí)本教程。 其次,本教程極具實用性,邊學(xué)邊練。而...
    木木加油閱讀 1,426評論 3 28
  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,837評論 4 54
  • “阿箏你這么粘我,如果我離開了怎么辦?” “這是什么鬼話,要有也是我先走,再說,相識本就是一種幸福的東西,人呢...
    楊箏2017閱讀 317評論 1 3
  • 參加橙長計劃,只為成長為自己喜歡的自己。記手帳是為了什么呢?為了在逃去如飛的日子里留下成長的印記。 今天是第一天發(fā)...
    冷小熱閱讀 306評論 0 3
  • 月亮的長裙一直垂到地面,芬芳的香味化作潔白的雪花,羞答答地飄下,那一霎我看到了酒紅色的你。
    桅桿掛帆閱讀 129評論 0 0

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