2021-05-12 14:32:11
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 程式碼而產生的.
遠端倉庫
1.在git@osc新建倉庫
2.建立完成後新增後使用命令:$ git remote add origin git@git.oschina.net:你的使用者名稱/gitstudy.git
遠端庫的名字是origin
,這是Git預設的叫法,也可以改成別的,但是origin
這個名字一看就知道是遠端庫。
下一步,就可以把本地庫的所有內容推播到遠端庫上:
3.使用$ git push -u origin master
把本地庫的所有內容推播到遠端庫上
小結
關於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
相關文章