Git和Github的介紹、簡單操做、衝突(上)

目的:

     1.gitgithub簡介

      2.GitSVN區別

    3.Github 的簡單使用

    4.下載安裝Git-20-64-bit.exe

     5.Git經常使用命令

      5.1Git命令使用場景git

      5.2經常使用命令github

     5.3實踐操做:使用git提交文件至遠程倉庫算法

     6.Git衝突

 


Git與Github簡介

  Git簡介:Git是一個開源的[分佈式][版本控制系統],用於敏捷高效地處理任何或小或大的項目 

 版本控制器:數據庫

    CVS/SVN/Git瀏覽器

 SVN:bash

    客戶端/服務器服務器

   GIT:網絡

       客戶端/代碼託管網站(例如:github)編輯器

 注意1:相似的代碼託管網站還有:github/碼雲/阿里雲Code源碼管理分佈式

  注意2:相似的技術GitLab,但它與GitHub又有必定的區別

   GitLabGitHub同樣屬於第三方基於Git開發的做品,免費且開源。與Github相似,能夠註冊用戶,任意提交你的代碼,添加SSHKey等等。

   不一樣的是,GitLab是能夠部署到本身的服務器上,數據庫等一切信息都掌握在本身手上,適合團隊內部協做開發,

   你總不可能把團隊內部的智慧總放在別人的服務器上吧?簡單來講可把GitLab看做我的版的GitHub

Github簡介:

  GitHub是一個開源的代碼託管平臺,使用GitHub能夠查看別人的項目、能夠創建靜態網頁、能夠管理插件、能夠在線編譯、能夠託管代碼等等。


Git與SVN區別

 一、去中心化

      GIT是分佈式的,SVN不是:這是GIT和其它非分佈式的版本控制系統,例如SVNCVS等,最核心的區別。     

 二、git倉庫的任何一個拷貝均可以獨立做爲一個服務器來使用

 三、Git中文件有四種狀態:

      未跟蹤(untrack):表示文件爲新增長的

      已修改(modified):表示修改了文件,但還沒保存到git倉庫中。

      已暫存(staged):表示對一個已修改文件的當前版本作了標記,使之包含在下次提交的快照中

      已提交(committed):表示文件已保存在git倉庫中。

  四、其它

      GIT沒有一個全局的版本號,而SVN有:目前爲止這是跟SVN相比GIT缺乏的最大的一個特徵。

      GIT的內容完整性要優於SVNGIT的內容存儲使用的是SHA-1哈希算法。這能確保代碼內容的完整性,確保在遇到磁盤故障和網絡問題時下降對版本庫的破壞

  五、直接記錄快照,而非差別

      GIT把內容按元數據方式存儲,而SVN是按文件:全部的資源控制系統都是把文件的元信息隱藏在一個相似.svn,.cvs等的文件夾裏。

直接記錄快照,而非差別

  六、直接記錄快照,而非差別

      GIT分支和SVN的分支不一樣,分支在SVN中一點不特別,就是版本庫中的另外的一個目錄。

        


Github 的簡單使用

   建立公庫test224_pub

   這裏谷歌瀏覽器能夠自動翻譯成中文

  

  

  建立私有倉庫text224

  

成功:

建立文件夾

  

建立成功

 

刪除倉庫

 

 

 


下載安裝Git-20-64-bit.exe

  下載地址:

https://git-scm.com/downloads

  這裏有博主下載好的安裝包:

連接: https://pan.baidu.com/s/1vbEbN1X7oHYbOM29nO-r0A 提取碼: jkbr

 點擊Next>選擇要安裝的文件夾目錄

 建立開始菜單目錄名稱,默認git,不須要修改

 選擇git使用的編輯器

 

 

 

 行末換行符轉換,使用默認值

 

 安裝

檢測安裝成功,任意窗口或桌面均可以右鍵,出現下面兩個選項便可

 


 

 Git經常使用命令

  點擊Git bash here打開命令窗口

  查看git的配置列表

git config --list 

  設置用戶名/郵箱/密碼

git config --global user.name "username" --雙引號中的本身

 git config --global user.email "email"

 git config --global user.password "password"

Git命令使用場景

  git文件狀態與工做區域

 

git的文件狀態是其git核心內容,瞭解後對後續的操做有莫大的幫助,不一樣的文件狀態又存儲在不一樣的工做區域中。

 

  1.文件狀態 

  未跟蹤(untrack):表示文件爲新增長的

  已修改(modified):表示修改了文件,但還沒保存到git倉庫中。

       已暫存(staged):表示對一個已修改文件的當前版本作了標記,使之包含在下次提交的快照中

       已提交(committed):表示文件已保存在git倉庫中。

   2.工做區域

     2.1本地計算機

     Working Directory(工做目錄):即正在編輯的文件狀態。文件狀態爲未跟蹤(untrack)和已修改(modified)在此區域內。

     Staging Area(暫存區):保存了下次將提交的文件列表信息。文件狀態爲已暫存(staged)在此區域內。

     Repository(本地倉庫):提交到本地倉庫的文件。

     2.2遠程計算機

     Repository(遠程倉庫):已提交到遠程計算機內的文件。

經常使用命令

 git clone :將遠程倉庫clone到本地計算機。

   git status :展現工做區及暫存區域中不一樣狀態的文件。

   git add :將內容從工做目錄添加到暫存區。

   git commit :全部經過 git add 暫存的文件提交到本地倉庫。

   git push :將本地倉庫的記錄提交到遠程倉庫。

   git reset HEAD <file> :從暫存區移除指定文件。

   git checkout -- <file> :從本地倉庫恢復指定文件。

   git pull :拉取遠程倉庫的數據。

   git init

實踐操做:使用git提交文件至遠程倉庫

  1.取得項目的Git倉庫(從github現有倉庫克隆)url改成本身的倉庫地址;

  

 

git  clone  https://github.com/haungting/t224_pub.git  --克隆一個倉庫

 

  查看初始狀態

  cd進入倉庫,運行 git status

  進入下載項目目錄,用ls -ah命令若是命令竄顯示.git目錄,就表示已經克隆成功,而且該目錄已是git能夠管理的倉庫了

  

添加一個文件

  添加一個huang.txt文件t

 

     注意:若是文件上方有個 "Untracked files",表示這個文件「未跟蹤」

 新建立的文件添加到「暫存區」

 git add huang.txt   --把新建立的add.txt提交到「暫存區」

而後運行    git status

 注1:文件上方有說明使用 git reset HEAD <file> 可從暫存區移除指定文件。

 

「暫存區」的內容提交到「本地倉庫」

 執行 git commit,將「暫存區」的內容提交到「本地倉庫」,執行後運行 git status

要輸入「提交說明」的話就須要

          1.按鍵盤字母 i 進入insert模式

          2.修改最上面那行黃色合併信息,能夠不修改

          3.按鍵盤左上角"Esc"

          4.輸入":wq",注意是冒號+wq,按回車鍵便可

 

 

 

「本地倉庫」的內容提交到「遠程倉庫」

執行 git push將「本地倉庫」的內容提交到「遠程倉庫」,執行後運行 git status

遠程倉庫也有了

 


Git衝突

  衝突的意思也就是:

  好比小黃和小王同時修改了同一個文件而小黃已經push到github上,小王也要提交至遠程倉庫,致使發生衝突

 

 首先小黃提交了而且成功了

如今小王也要提交結果致使衝突

從遠程倉庫pull代碼至本地,再修改衝突代碼       git pull

  注意git status查看倉庫狀態,會顯示紅色的錯誤提示消息「 both modified:   衝突.txt」

 

打開 衝突.txt,手動修改衝突部分的代碼

 

哈哈哈哈哈哈哈哈哈哈哈哈
小王改的
小黃改的

 注意<<<<<<< HEAD  >>>>>>>之間的即爲衝突的代碼,手動修改便可

 

 

依次add/commit/push代碼至遠程倉庫

commit執行完成,從新查看倉庫狀態git status,紅色的錯誤提示消息「 both modified: 衝突.txt」

若是沒有就成功啦

 

 

 

謝謝觀看!

相關文章
相關標籤/搜索