Git入門及常見命令


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM