Git起步
Git是什么?
我們都知道,Git是目前世界上最先進的分布式版本控制系統(沒有之一)。
簡單來說,Git就是讓我們編寫代碼的時候可以存儲各個版本代碼,並且也可以回退到任何歷史版本的一種控制系統。
Git有哪些功能?
1.備份文件
類似於用優盤網盤備份電影。我們的代碼也需要備份。修改完了以后提交給版本庫進行保管,哪一天代碼沒了也可以找回來。
比如我們打游戲就要存檔,萬一掛了還可以從上個存檔的地方重玩。
2.記錄歷史
Git相較於網盤,更加有利於保存代碼。網盤只能保留最新的狀態,文件覆蓋了,歷史文件的就沒了。而git在保存覆蓋的時候,可以清楚的記錄你是哪一天哪個時候哪個用戶保存的代碼,增加了什么,刪除了什么,備注信息等等都有記錄。
3.回到過去
當然,Git記錄了歷史日志,當然是為了可以回到過去。你每一次的保存都有日志記錄,你可以回到歷史的任何版本。
4.團隊協作
Git可以創建很多分支,支持多個人一起協作,並且對沖突處理的也很好。
5.開源協作
在GitHub上可以看到很多別人的項目,也可以發表自己的項目,增強交流溝通。
安裝Git
1.在window上安裝Git
有高人已經把模擬環境和Git都打包好了,名叫 msysgit ,只需要下載一個單獨的exe安裝程序,其他什么也不用裝,絕對好用。
msysgit 是Windows版的Git,從 http://git-scm.com/ 下載,然后按默認選項安裝即可。
安裝完成后,在開始菜單里找到“Git”->“Git Bash”,蹦出一個類似命令行窗口的東西,就說明Git安裝成功!

2.在linux上安裝Git
首先,你可以試着輸入git,看看系統有沒有安裝**Git**:
$ git program 'git' is currently not installed. You can install it by typing: sudo apt-get install git
像上面的命令,有很多Linux會友好地告訴你Git沒有安裝,還會告訴你如何安裝**Git**。
如果是其他Linux版本,可以直接通過源碼安裝。先從Git官網下載源碼,然后解壓,依次輸入:
./config
make
sudo make install
這幾個命令安裝就好了。
3.在Mac OS X上安裝Git
如果你正在使用Mac做開發,有兩種安裝Git的方法。
第一種是安裝 homebrew ,然后通過homebrew安裝Git。先打開網站 http://brew.sh/。 拷貝對應腳本到終端下安裝homebrew.然后在終端執行 brew install git命令。
第二種方法更簡單,也是推薦的方法,就是直接從 AppStore 安裝Xcode,Xcode集成了Git,不過默認沒有安裝,你需要運行Xcode,選擇菜單“Xcode”->“Preferences”,在彈出窗口中找到“Downloads”,選擇“Command Line Tools”,點“Install”就可以完成安裝了。

設置配置
安裝完成后,還需要最后一步設置,在命令行輸入:
git config --global user.name "zfpx" git config --global user.email "zfpx@126.com"
因為Git是分布式版本控制系統,所以每個機器都必須自報家門:你的名字和Email地址。
注意git config命令的--global參數,用了這個參數,表示你這台機器上所有的Git倉庫都會使用這個配置,當然也可以對某個倉庫指定不同的用戶名和Email地址。在這里,我們配置的環境中Git已安裝好,我們課程提供也是在Linux系統中命令進行操作 。
開始Git
對於git的工作流以及基本分區,這里簡單介紹一下有那幾個常用區

以上的專有名詞在這里解釋一下:
- Workspace:工作區
- Index / Stage:暫存區
- Repository:倉庫區(或本地倉庫)
- Remote:遠程倉庫
1.創建工作區
在自己的目標文件空白處右鍵,選擇Git Bush(安裝git-scm后會有此選項),打開命令行。
使用管理員身份打開系統cmd命令行也可,按住shift鍵的同時,點擊右鍵在此處打開命令行窗口即可進入當前文件的命令行。
$ git init //創建一個工作區
這時候當前目錄下就有一個.git方法,這個目錄是Git來跟蹤管理版本庫的,最好別改動。如果沒有看到.git目錄,那可能因為這個目錄默認是隱藏的,設置一下即可。
2.添加文件
$ echo 111 > index.html //清空index.html並且寫入111 $ echo 222 >> index.html //往index.html文件中添加222
添加了內容后看可以通過下面代碼查看文件內容
$ cat index.html //查看index文件內容
同時也可以通過以下代碼查看當前文件的狀態,git 的 status 方法可以常用,了解當前的狀態。
$ git status //查看當前狀態 $ git status -s //查看當前狀態(第一列綠色字母含義是:暫存區中和版本庫中的文件的改動;第二列紅色字母含義是:工作區和暫存區的文件改動)
用git的add命令可以把文件添加到倉庫中暫存區
$ git add index.html //把index.html文件添加到暫存區
$ git add . //將工作區所有文件提交到暫存區
當然,提交到暫存區的文件也可以撤銷
$ git rm --cached index.html //將剛提交到暫存區的東西撤銷
3.提交文件
Git可以通過git commit來講代碼提交到倉庫
$ git commit -m "初始化index.html" //將暫存區提交到歷史區(引號中的是上傳描述) $ git commit -am "添加了 xxx" //直接將暫存區提交到歷史區,不需要add步驟
上傳后的上傳日志可以通過git log查看
$ git log //查看歷史區的上傳日志 $ git log --oneline //查看歷史區的上傳日志(單行顯示) $ git log --graph //查看歷史區的上傳日志(圖形化顯示) $ git reflog //查看所有的提交
當然,也可以查看當前每個區的區別
$ git diff //查看工作區與暫存區的區別 $ git diff head //查看工作區與歷史區的區別 $ git diff --cached //查看歷史區與暫存區的區別
4.版本回退與刪除文件
git可以通過 reset 來回退到歷史版本
$ git reset --hard e8007ab //回退到編號為e8007ab的歷史版本
$ git reset --hard HEAD^ //回退到上一個版本
以上代碼中,e8007ab是歷史版本的編號的前7位。
git可以通過 rm 來刪除對應文件
$ rm index.html //刪除文件 $ git checkout -- index.html //刪除文件后(誤刪),尚未上傳暫存區,可以這樣撤銷 $ git rm index.html //刪除文件后(確定刪除),並上傳暫存區
到這里,你基本已經可以掌握了 git 的基本用法了,可以使用 git 來存儲各個版本的代碼,也可以回退到各個歷史版本。但是,開發避免不了團隊協作,git 在團隊協作中也起了很大一部分作用。
Git團隊協作/分支
1.Git的分支系統
git 的分支系統非常的好用,有了 git 的分支,你可以在你們團隊的項目創建一個你自己的分支,然后在這里編寫你的代碼,等到開發結束后再合並到原來的分支上,不會影響別人,也可以方便自己。是團隊開發的重要保證。
下面附上關於 branch 的主要代碼:
# 列出所有本地分支 $ git branch # 列出所有遠程分支 $ git branch -r # 列出所有本地分支和遠程分支 $ git branch -a # 新建一個分支,但依然停留在當前分支 $ git branch [branch-name] # 新建一個分支,並切換到該分支 $ git checkout -b [branch] # 新建一個分支,指向指定commit $ git branch [branch] [commit] # 新建一個分支,與指定的遠程分支建立追蹤關系 $ git branch --track [branch] [remote-branch] # 切換到指定分支,並更新工作區 $ git checkout [branch-name] # 切換到上一個分支 $ git checkout - # 建立追蹤關系,在現有分支與指定的遠程分支之間 $ git branch --set-upstream [branch] [remote-branch] # 合並指定分支到當前分支 $ git merge [branch] # 選擇一個commit,合並進當前分支 $ git cherry-pick [commit] # 刪除分支 $ git branch -d [branch-name] # 刪除遠程分支 $ git push origin --delete [branch-name] $ git branch -dr [remote/branch]
對於 git 的學習我暫時只到這里,日后還需要學習,感覺各路大神指點指點。
參考網站: Git 系列教程 http://bbs.duchengjiu.top/read.php?tid=42&fid=5
阮一峰的Git常用清單 http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html
