本文用類似於情景再現的方式向大家介紹了Git的基本使用,融入情景,來一段Git之旅吧!
Git是一款強大的版本控制軟件,通俗的講就是一款能夠幫你管理代碼的軟件,再通俗的講就是相當於一個倉庫管理員,代碼就是貨物,你只要將貨物交給這個管理員,它就能幫你管理得井井有條。有人可能不理解,平時我們的代碼自己就可以管理呀,而且覺得很簡單方便,何必勞煩Git呢?其實原因有二:一是通常情況下,我們會在6個月之後重新維護自己的代碼,Git能夠記錄你的開發流程,讓你更好的進入當時的開發情景,以便回憶;二是今後的軟件開發多是多人多地協作,Git能幫助我們跨越時空障礙。
在我的學習過程中,我在很久的一段時間內都沒有分清Git和Github的關係,本文先講講Git,在下一篇博客講完Github之後想必讀者就瞭解了。
目前,我暫且這麼理解Git軟件的控制過程:當在本機上安裝了Git,運行Git相關命令後,會在本機生成一個本地倉庫(repository),此時也Git也分配了一個倉庫管理員來協助我們管理我們的代碼。我們在本地的工作區編寫代碼,然後就能add到Git的暫存區中,最後可以commit到Git的倉庫,由Git管理員將本次提交的代碼編號放到相應的位置。彷彿有一根時間線串聯起來的珍珠,可以隨時到達任意時間的狀態,也可查看代碼有什麼更改等等。
下面簡單的介紹一下Git的基本使用。
在使用Git之前必須先安裝,在linux下使用命令:
sudo apt-get install git
安裝成功之後,進行簡單的設置:
git config --global user.name “your name” #your name 換成你的姓名
git config --global user.email “your email” #your email 換成你的郵箱
設置完成之後就可以準備工作啦!首先需要創建一個本地倉庫(repository)來存放我們的貨物(代碼,文件等等)吧,使用如下命令創建:
mkdir learngit (就是linux下生成一個目錄)
創建完成之後我們進入learngit這個倉庫,即 cd learngit。進來一看,倉庫中空空如也,倉庫需要購置一些必需品和一名管理員,所以需要初始化一下:
git init(裏面有個隱藏的.git文件,不要隨便修改)
現在我們可以坐下來生產代碼啦,我們先寫一份代碼:
vim readme.txt
寫完之後將它複製一份給管理員,管理員將它拿在手上暫存起來(實際上就是從工作區添加到暫存區):
git add readme.txt #當然我們可以寫完多份代碼,然後一起交給管理員
工作一段時間之後,你不經意的擡頭,突然覺得管理員手中的代碼很多了(或者代碼太完美了),此時我們放心的讓管理員把代碼拿到倉庫的貨架上編號存儲起來:
git commit -m “commit few codes” #不加文件名,就是將管理員手中(暫存區)的所有文件提交,另外 -m之後寫少許說明,方便以後維護
突然,你靈機一動,想到一個絕妙的功能想加到readme.txt中,於是再打開readme.txt文件,修改完之後,重新執行上述兩個命令即可。
就這樣,你愉快的工作了好幾天,提交了好幾次代碼(意味着好幾個不同的版本),期間你也會修改代碼,如果老闆不滿意這次修改,那就必須撤銷這次修改:
git checkout -- readme.txt #修改完提交到倉庫
很不幸,過了幾天老闆對你編寫的新功能非常感興趣,希望你再添加該功能,此時我們只需要回到爲修改之前的版本就行,首先查看提交id:
git log 或者git log --pretty=oneline #後者以一行顯示,更整潔。或者使用下面的命令
git reflog #查看詳細的信息,包括刪除過的提交,而git log 無法顯示
由上述兩條命令之一可以查看commit_id ,使用下面的命令就能回到爲修改之前的版本:
git reset --hard commit_id # commit_id 即上面查到的一串數字
如果記得版本相對當前版本的位置,則可以使用更簡單的方法:
git reset --hard HEAD~number #number即相對位置,比如回到前兩個版本,則number=2
當產生了廢棄的文件,可以用以下命令刪除:
git rm filename
在任何時候,都可以使用以下命令來查看當前倉庫的狀態:
git status
以上就是Git 的入門命令,其實並不多,結合情景記憶,並不困難。下篇博客將介紹Github的入門知識。本文借鑑了
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
中的內容,如有不明白,可以詳細看看該文