Git從入門到入土

Git介紹

Git是開發中必須用到的分佈式的版本控制軟件,這是其官網Gitjava

咱們能夠在官網中找到其說明文檔,十分的詳細而且使用簡單。git

下載並安裝

官網說明文檔已經十分詳細了,裏面包含了weindows、Linux、mac的安裝步驟,這裏就拿Windows舉例:github

下載完後,一直點下一步便可,安裝完畢後再桌面右擊鼠標若是出現下面兩個選型說明安裝完畢編程

image

本地倉庫

因爲Git是分佈式的版本控制軟件,因此咱們首先要學習的就是如何將代碼提交到本地,而後提交至遠端代碼庫。ssh

版本提交

在Git中,咱們首先要作的就是對一個項目進行管理。分佈式

進入項目文件夾,執行初始化命令便可由Git接管當前項目的版本控制。以下所示學習

image

而後右鍵,選擇Git Bash Here後進入終端,讓Git接管MyProject文件夾。fetch

而後輸入git init (將這個目錄變成Git能夠管理的倉庫)當命令生效後,會生成一個.git的隱藏文件夾,以下所示spa

image

而後咱們可使用git status來檢測當前文件夾中被管理的文件狀態。版本控制

image

此時新增的文件和修改後的文件均屬於未被管理的文件,呈現紅色,如上所示。

此時就須要咱們管理該文件,使用add命令,告訴git,把文件添加到倉庫。

  • git add 文件夾名 # 僅僅管理一個文件
  • git add . # 表明當前目錄下的全部文件

當咱們管理後再使用git status 查看狀態後就變成綠色了,而後使用git commot告訴Git,把文件提交到倉庫中,以下所示:

image

這裏Git告訴你又異常,讓你進行用戶信息的配置,輸入帳號密碼等信息。咱們只須要按照提示配置一下我的信息便可,配置後再次提交以下所示:

image

到此咱們就完整的提交了咱們的文件到遠程倉庫中,可使用git log查看一下生成的版本。

咱們總結下咱們剛纔用到的命令:

命令 描述
git init 初始化git,讓Git接管當前文件夾
git status 查看當前文件狀態,新增或修改的文件都呈現紅色,而執行了add命令後會呈現綠色
git add [./filename] 將文件進行提交
git commit -m "描述消息" 生成一個版本
git log 查看版本信息。

版本回滾

  • 高版本回滾到低版本
    • 首先使用git log查看提交日誌
    • 而後使用git reset --hard 版本號進行回滾

image

  • 一樣的也能夠從低版本回滾到高版本
    • 首先就不能使用git log而是使用git reflog查看日誌
    • 而後使用git reset --hard 版本號進行回滾

image

照例咱們總結一下

命令 描述
git log 查看版本提交信息,用於高版本回滾低版本
git reflog 查看版本提交信息,用於低版本回滾高版本
git reset --hard 版本號 進行版本回滾

分區概念

在上面的操做中,咱們能夠發現一個文件有多個狀態:

  • 以控制狀態:指該文件能夠被git管理的狀態,目前來說全部位於git init文件夾下的文件都是以控制狀態
  • 以變更狀態:當有新文件,或本來文件被修改後,使用git status呈現紅色狀態的文件
  • 暫存區狀態:指的是執行git add命令後,紅色狀態文件變爲綠色狀態的文件
  • 版本庫狀態:指的是執行git commit命令後,提交至版

這些不一樣的狀態對應不一樣的分區,因爲此時咱們作的都是本地版本控制,因此這裏的版本庫即爲本地版本庫

image

使用分支

分支是Git中十分重要的一個概念,它可讓你處理更多的突發狀況,以及讓你更好的進行協同操做開發。讓你在開發中,多個分支互不影響,有正式版本,和開發版本等等,以下所示

image

這樣咱們不一樣的分支中所看到的已提交版本並不相同,當在某一分支中建立新的分支,該子分支將繼承當前分支節點中的全部文件,默認是有一個master分支。

經常使用命令以下所示

命令 描述
git branch 查看當前項目的全部分支(分支前*表示當前處於的分支)
git branch 分支名 建立一個新的分支
git checkout 分支名 切換分支
git merge 要合併的分支 合併分支(先切換分支)
git branch -d 分支名 刪除分支

合併衝突

因爲分支衝突,可能會出現多條分支修改同一處代碼的狀況,這個時候就出現了合併衝突的問題,因爲Git並不知道聽誰的,因此就所有將其保留,由你進行手動修改。

遠程推送

上面講的很熱鬧,可是都是基於本地倉庫的,真正在使用的時候,是要和其餘人進行協同操做的,這也是Git的一大優點。

Git是一款分佈式的版本控制軟件,能夠選擇的遠程版本庫不少,這裏就介紹咱們最經常使用的GItHub。

首先就是註冊一個用戶,這裏就不演示了。

建立倉庫

當咱們登陸GitHub後,首先要作的就是常見一個遠程倉庫。首先現打開倉庫頁面,

image

而後點擊NEW新建一個倉庫,以下所示

image

建立完成後將會看到下面的頁面

image

到此爲止咱們的倉庫就建立完畢了,後面就可使用了

推送代碼

按照上面的提示咱們開始推送代碼到GitHub

git remote add origin https://https://github.com/iszhonghu/Test.git
git push -u origin master

而後就能夠看到咱們的文件成功上傳了

image

這裏只是上傳的master分支,若是要是想上傳dev分支,則仍是須要輸入push命令

git push -u origin dev

總結:

命令 描述
git remote add 別名 倉庫地址 給倉庫取一個別名
git push -u origin 分支名 將分支推送到遠程倉庫
須要注意的是:

推送代碼時,須要一個一個分支進行推送

拉取代碼

既然能夠推送代碼也就能夠拉取代碼,以方便實現協同辦公。

首先要建立一個文件夾來保存代碼,而後直接拉取便可,

命令 描述
git clone 遠程倉庫地址 克隆遠程倉庫全部代碼(僅第一次使用)
git pull origin 分支名 增量更新某一分支中的代碼

分區概念

因爲涉及到了遠程倉庫,因此又多了一個分區,以下所示

image

其中使用增量更新的pull實際上能夠拆分爲兩條命令

  • git fetch origin 分支 將遠程版本庫中的分支代碼拉到本地版本庫中
  • git marge origin 分支 將本地版本庫中代碼合併到本地分支中

其餘操做

配置文件

Git的配置文件有三個部分:

  • 倉庫級的配置文件:在倉庫的 .git/.gitconfig,該配置文件只對所在的倉庫有效。
    • local
  • 全局配置文件:Mac系統在 ~/.gitconfig,Windows系統在 C:Users<用戶名>.gitconfig。
    • global
  • 系統級的配置文件:在Git的安裝目錄(Mac系統下安裝目錄在 /usr/local/git)的 etc 文件夾中的 gitconfig。
    • system

SSH

使用SSH能夠實現代碼的推送和拉取

  • 生成公鑰和祕鑰
    • ssh-keygen
      • 默認放在/.ssh目錄下,其中id_rsa.pub爲公鑰,id_rsa爲私鑰

總結

下面是一些在本文章中有的命令:

命令 描述
git init 初始化
git status 查看狀態
git add 管理指定文件
git commit -m "描述" 生成版本
git log 查看版本記錄(以前)
git reflog 查看版本記錄(以後)
git reset --hard 版本號 版本回滾
git branch 查看全部分支
git branch 分支名 建立新分支
git checkout 分支名 切換分支
git merge 分支合併
git branch -d 分支名 刪除分支
git remote add 別名 地址 遠程倉庫取別名
git push -u 別名 分支 推送某分支到遠程倉庫
git clone 地址 克隆遠程倉庫代碼
git pull 別名 分支 拉取遠程倉庫中某一分支代碼,增量更新
git rebase -i HEAD~條數 版本合併

最後

  • 若是以爲看完有收穫,但願能關注一下,順便給我點個贊,這將會是我更新的最大動力,感謝各位的支持
  • 歡迎各位關注個人公衆號【java冢狐】,專一於java和計算機基礎知識,保證讓你看完有所收穫,不信你打我
  • 求一鍵三連:點贊、轉發、在看。
  • 若是看完有不一樣的意見或者建議,歡迎多多評論一塊兒交流。感謝各位的支持以及厚愛。

——我是冢狐,和你同樣熱愛編程。

image

歡迎關注公衆號「 Java冢狐」,獲取最新消息
相關文章
相關標籤/搜索