天天看點

Git 操作

一、Git 簡介

  • Git 是一個開源的分布式版本控制系統,用于靈活 高效地處理任何或小或大的項目。
  • Git 是 Linus Torvalds 為了幫助管理 Linux 核心開發而開發的一個開放源碼的版本控制軟體。
  • Git 與常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本庫的方式,不必伺服器端軟體支援。

二、Git 安裝配置

這裡咱們就介紹 Windows 下的安裝, 下載下傳也是十分簡單 https://git-scm.com/downloads,直接一路 next, 就按照預設提示安裝就好

  • 安裝成功之後,在視窗内點選滑鼠右鍵,出現 Git GUI Here 和 Git Bash Here;證明安裝成功;
  • Git 安裝完成之後,還需要最後一步設定,打開 Git Bash Here 輸入 :
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"      
  • 因為 Git 是分布式版本管理系統是以每個機器都必須自報家門:你的名字和郵箱位址;

    --global 

    表示全局,表示這台機器上所有的 Git 倉庫都會使用這個配置。

三、初始化版本庫

  • 版本庫(repository),其實可以了解為一個檔案夾,這和檔案夾内的所有檔案都可以被 Git 管理起來;初始化版本庫;在指定檔案夾下,打開 Git Bash Here 輸入:
$ git init      
  • 此時檔案夾内會生成一個 .git 檔案夾,這個目錄是 Git 來跟蹤管理版本庫的。

四、把代碼存儲到 .git 倉庫中

$ git add ./filename    # 如果需要送出多個檔案 直接用 ./ 表示目前目錄下所有檔案
$ git commit -m "commit description"
$ git commit --all -m "commit description"   # 一次性把修改後的代碼直接放到倉庫中      

五、檢視目前狀态

$ git status      

六、檢視日志

$ git log   # 檢視曆史送出記錄
$ git log --oneline   # 檢視精簡版的日志
$ git reflog   # 可以看到每一次切換版本的記錄: 可以看到所有送出的版本号      

七、回退到指定的版本

$ git reset --hard Head~0   # 這裡 0 表示索引
$ git reset --hard 版本号   # 這裡的版本号 是送出後的版本号 通過 git log --oneline 檢視      

八、建立分支

  • 預設有一個主分支 master 工作流程為:
    • 先建立一個分支
    • 切換到指定的分支
    • 然後正常寫入内容, 完成後送出
    • 切換到主分支
    • 合并至主分支
$ git branch dev   # 建立了一個 dev 的分支, 剛建立時裡面的東西和 master 是一樣的
$ git checkout dev   # 切換到指定的分支(dev)
$ git branch   # 檢視目前的所有分支
$ git merge dev   # 把目前分支與指定分支, 進行合并      
  • 從某個分支送出代碼如果存在沖突的話,需要手動去處理沖突,然後再送出一次
  • 在實際開發中,我們應該按照幾個基本原則進行分支管理
  • 分支了解
    • 首先,master 分支應該是非常穩定的,也就是僅用來釋出新版本,平時不能在上面幹活    
    • 那在哪幹活呢?幹活都在 dev 分支上,也就是說,dev 分支是不穩定的,到某個時候,比如 1.0 版本釋出時,再把 dev 分支合并到 master 上,在 master 分支釋出 1.0 版本 
    • 你和你的小夥伴們每個人都在 dev 分支上幹活,每個人都有自己的分支,時不時地往 dev 分支上合并就可以了  
    • 是以,團隊合作的分支看起來就像這樣
Git 操作

九、送出和拉取

$ git push https://github.com master    # 把本地代碼送出到 遠端倉庫的 master 分支
$ git pull http://github.com master   # 從遠端倉庫的 master 分支把檔案拉到本地
$ git clone http://github.com   # 會得到遠端倉庫相同的版本, 如果多次執行會覆寫本地内容(一般第一次使用)      
  • 每次的送出和拉取檔案都需要 輸入遠端倉庫的位址, 這樣會顯得很不友善, 當然這個也是有辦法解決的
$ git remote add origin http://github.com    # 相當于給連接配接定義了一個 origin 的變量, 以後再次 git push 或 git pull 的時候就不需要每次都輸入連接配接了
$ git push origin -u master # 相當于把遠端倉庫的 master 和本地的 master 建立了關系, 以後再次 push 和 pull 的時候就直接使用 git pull 或 git push 就可以了      
  • git pull 和 git clone 的差別
    • clone 是本地沒有 repository 時,将遠端 repository 整個下載下傳過來。pull 是本地有 repository 時,将遠端 repository 裡新的 commit 資料(如有的話)下載下傳過來,并且與本地代碼 merge。  

十、ssh方式上傳代碼

  • 生成公鑰和私鑰
$ ssh-keygen -t rsa -C "your email"      
  • 執行指令後會在目前電腦的使用者目錄下生成一個檔案夾 .ssh(windows為例)
  • 一個 id_rsa 檔案, 另一個 id_rsa.pub, 然後複制 id_rsa.pub 内的值放到 github => setting =>SSH andGPG keys => New SSH keys 複制完成之後就可以通過 ssh 的方式送出代碼了
$ git push [email protected]:xxx/ssh.git master      

作者:多測師進階講師_鄭sir

微信:ZhengYing8887

出處:https://www.cnblogs.com/ZhengYing0813/

備注:本文版權歸作者所有,歡迎轉載和添加作者微信探讨技術,但未經作者同意必須在文章頁面給出原文連結,否則保留追究法律責任的權利。

繼續閱讀