歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

Git使用教程圖文詳解

 

什麼是Git

Git是目前世界上最先進的分布式版本控制系統。最初由Linus Torvalds編寫,用作Linux內核代碼的管理。如果你是windows用戶,看到這裡你可能會擔心“是不是只能用在linux上?或者Git對於windows不是那麼友好。” ,那麼我告訴你你的擔心是多余的,GitHub 發布了GitHub for Windows,為 Windows 平台開發者提供了一個易於使用的 Git 圖形客戶端;微軟也通過CodePlex向開發者提供 git 版本控制系統。 

為什麼學習Git

除了你可以使用Git來管理自己的項目之外,還因為越來越多的人使用Github來托管自己的開源項目, 你可以找到適合你的開源項目進行學習,加入到一個團隊來提高自己。同時GitHub也可以幫助你找到滿意的工作!! 沒錯,可能有公司看到你托管到GitHub的項目而向你發出offer,在簡歷中 你的GitHub 可能成為加分項。 

安裝設置Git

1.msysgit是 Windows版的Git  點擊下載   安裝完成後,點擊開始菜單—》Git文件夾—》Git Bash  打開後 會出現下面的命令行窗體, 證明你安裝成功了。

2. 設置你的名字與Email,你的名字與Email會出現在你的提交記錄中。

git config --global user.name "你的名字"
git config --global user.email "你的Email"

注意:git config使用--system參數時, Git 會讀寫/etc/gitconfig文件,該文件含有 對系統上所有用戶及他們所擁有的倉庫都生效的配置值

        git config使用--global參數時, Git 會讀寫~/.gitconfig文件,該文件含有只適用於該用戶的配置值

        git config使用--local參數時, Git 會讀寫 由用戶定義的各個庫中Git 目錄下的配置文件(.git/config),該文件含有只適用於該Git庫的配置值    

 以上闡述的三層配置從一般到特殊層層推進,如果定義的值有沖突,以後面層中定義的為准,例如:在.git/config和/etc/gitconfig有沖突會采用.git/config值

你可以使用下面的命令來產看config的配置值

git config --list

3.在工作目錄中初始化新倉庫

倉庫,英文名repository,你可以簡單的理解一個目錄,這個目錄裡面的所有文件都可以被Git管理起來,每個文件的修改,刪除,Git都能跟蹤。

首先我們從命令行進入到倉庫的文件夾:

使用

git init

命令來將文件夾變成Git可以管理的倉庫。

這時倉庫目錄下多了一個.git的目錄(如果沒有,可能你的windows設置不顯示隱藏的文件、文件夾,在文件夾選項中修改一下設置就好了。),這個目錄是Git來跟蹤管理版本庫的,沒事千萬不要手動修改這個目錄裡面的文件,不然改亂了,就把Git倉庫給破壞了。

我們也可以從現有倉庫克隆

git clone http://git.oschina.net/xxxxxx/xxxxxx.git

這裡使用的是 clone 而不是 checkout,Git 收取的是項目歷史的所有數據(每一個文件的每一個版本),服務器上有的數據克隆之後本地也都有了。實際上,即便服務器的磁盤發生故障,用任何一個克隆出來的客戶端都可以重建服務器上的倉庫,回到當初克隆時的狀態。

我們來clone 院子裡尋找和諧大大的PaPaPa項目:

我先fork了一下這個項目,獲取他的地址:

開始clone:

clone 完成,查看一下倉庫的文件夾:

 

Git各種操作

Git添加文件

在學習怎麼添加文件之前我們先了解一下Git的工作流:

你的本地倉庫由 git 維護的三棵“樹”組成。第一個是你的 工作目錄,它持有實際文件;第二個是 緩存區(Index),它像個緩存區域,臨時保存你的改動;最後是 HEAD,指向你最近一次提交後的結果


首先使用git add命令將計劃的改動提交到緩存區,
然後使用git commit -m 代碼提交信息"命令,將代碼提交到HEAD,此時還沒有提交到服務器,
執行git push origin master命令以將這些改動提交到服務器,可以把 master 換成你想要推送的任何分支。

 下面我們來嘗試添加文件 

1.在倉庫文件夾內我新建了個readme.txt

2.使用命令 git add readme.txt添加到緩存區裡面去。

3.用命令 git commit -m 把文件提交到HEAD。

4.使用 git status 檢查當前文件狀態

Git提交修改

1.首先我們先修改一下 readme.txt

2. 我們使用 git status 查看結果:

 上面的信息告訴我們,readme.txt被修改過了,但還沒有准備提交的修改。

 3. 我們可以使用 git diff +文件名 ,查看具體修改的內容。

 4.使用git commit 提交修改的文件。

Git版本回退

 1.使用git log  查詢提交的歷史記錄

2.如果感覺顯示的信息太多, 我們可以使用git log --pretty=oneline  命令

第一列一大串的字符為commit id ,是一個SHA1計算出來的一個非常大的數字,用十六進制表示,第二列為我們提交時填寫的注釋。

3.這時我們回退到上個版本可以使用git reset  --hard HEAD^ 命令,回退上上個版本 git reset  --hard  HEAD^^ ,依次類推, 當我們回退100個版本時,可以寫成git reset  --hard HEAD~100  

可以看到 HEAD目前指向的是 commit id為9d3830c的版本。

4.我們已經回退了一個版本,我們可以撤銷這次的回退 當然可以,我們使用 git reset --hard +commit id 形式版本號(沒必要寫全,前幾位就可以了,Git會自動去找)。

可以看到 HEAD又重新指向了 commit id為4332ee4的版本。

Git刪除文件與恢復文件

1.我們可以使用 git rm+文件名 命令來刪除文件

2.我們使用 git status 命令 產看目前倉庫狀態

可以看到deleted:顯示了 我們剛剛刪除的文件,我們再看看倉庫的文件夾,發現readme.txt 也沒有了。

3.這時我們用git checkout命令來恢復剛剛刪除的文件。

git checkout其實是用版本庫裡的版本替換工作區的版本,無論工作區是修改還是刪除,都可以“一鍵還原”。

添加遠程倉庫

添加SSH Keys

SSH keys 是為了防止任何人隨意clone 或 push 代碼而產生的.

SSH keys 有公匙和密匙,你在本地生成了密匙和公匙之後,把你的公匙告訴給服務器或者其他協作者,那麼你就可以在他們的git版本庫clone和push代碼等操作.相對於一台服務器來說,一台協作者機器對應一個SSH keys. 1.首先使用 $ ssh-keygen -t rsa -C "你的郵箱"  1.這裡是輸入你的SSH keys 保存的位置,就是前面括號內的路徑。 2.輸入口令,可以直接回車。 3.再次輸入口令,可以直接回車。 打開剛剛ssh keys 保存的文件夾: id_rsa 存放的就是私鑰 , id_rsa.pub存放的是公鑰,我們可以cat 路徑/id_rsa.pub查看公鑰。 也可以用文件管理器打開文件。 2.在github或者git@osc 添加你的公鑰

遠程倉庫

1.在git@osc新建倉庫

2.創建完成後添加後使用命令:$ git remote add origin [email protected]:你的用戶名/gitstudy.git

遠程庫的名字是origin,這是Git默認的叫法,也可以改成別的,但是origin這個名字一看就知道是遠程庫。

下一步,就可以把本地庫的所有內容推送到遠程庫上:

3.使用$ git push -u origin master把本地庫的所有內容推送到遠程庫上

小結

關於Git,本篇文章也沒講到分支,感興趣的同學先去看看廖雪峰老師的教程吧,這篇文章以後也會更新這部分內容,春節假期就這麼匆匆過去了,感覺也沒學到什麼,希望繼續努力。能堅持住寫博客的習慣。

參考資料

1.廖雪峰老師的Git教程

2.Git使用簡易教程:http://www.bootcss.com/p/git-guide/

3.Pro Git(中文版):http://www.linuxidc.com/Linux/2013-05/85066.htm

GitHub 教程系列文章: 

GitHub 使用教程圖文詳解  http://www.linuxidc.com/Linux/2014-09/106230.htm 

Git 標簽管理詳解 http://www.linuxidc.com/Linux/2014-09/106231.htm 

Git 分支管理詳解 http://www.linuxidc.com/Linux/2014-09/106232.htm 

Git 遠程倉庫詳解 http://www.linuxidc.com/Linux/2014-09/106233.htm 

Git 本地倉庫(Repository)詳解 http://www.linuxidc.com/Linux/2014-09/106234.htm 

Git 服務器搭建與客戶端安裝  http://www.linuxidc.com/Linux/2014-05/101830.htm 

Git 概述 http://www.linuxidc.com/Linux/2014-05/101829.htm 

分享實用的GitHub 使用教程 http://www.linuxidc.com/Linux/2014-04/100556.htm 

Git 的詳細介紹:請點這裡
Git 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved