一、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 是分布式版本管理系統是以每個機器都必須自報家門:你的名字和郵箱位址;
表示全局,表示這台機器上所有的 Git 倉庫都會使用這個配置。--global
三、初始化版本庫
- 版本庫(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 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/
備注:本文版權歸作者所有,歡迎轉載和添加作者微信探讨技術,但未經作者同意必須在文章頁面給出原文連結,否則保留追究法律責任的權利。