Git的使用(1)

1、Git簡介

  Git 是一個開源的分佈式版本控制軟件,用以有效、高速的處理從很小到很是大的項目版本管理。 Git 最初是由Linus Torvalds設計開發的,用於管理Linux內核開發。Git 是根據GNU通用公共許可證版本2的條款分發的自由/免費軟件,官網:http://git-scm.com/。python

  Git是目前世界上最早進的分佈式版本控制系統(沒有之一)。linux

  GitHub是一個基於Git的遠程文件託管平臺(同GitCafe、BitBucket和GitLab等)。git

  Git自己徹底能夠作到版本控制,但其全部內容以及版本記錄只能保存在本機,若是想要將文件內容以及版本記錄同時保存在遠程,則須要結合GitHub來使用。使用場景:github

    - GitHub:在本地 .git 文件夾內維護歷時文件;vim

    - GitHub:在本地 .git 文件夾內維護歷時文件,同時也將歷史文件託管在遠程倉庫;bash

  集中式和分佈式:服務器

    - 集中式:遠程服務器保存全部版本,用戶客戶端有某個版本dom

    - 分佈式:遠程服務器保存全部版本,用戶客戶端有全部版本ssh

一、安裝Git

  Git下載地址:https://git-scm.com/downloads分佈式

  1)下載安裝包,以下圖:

  2)雙擊安裝應用程序,如下是安裝過程當中須要注意的幾步:

  3)點擊下一步,以下圖:

  4)點擊下一步,以下圖:  

  5)點擊下一步,以下圖:

  6)點擊下一步,以下圖:

  7)點擊下一步,以下圖:

  8)點擊安裝,以下圖:

  9)安裝完成後,「開始」菜單會新增一個Git文件夾,以下圖:

  10)點擊「Git Bash」(Git Bash是一個黑屏終端,仿linux的窗口,可以使用linux命令),以下圖:

2、配置Git

一、配置Git用戶名和郵箱

  打開Git Bash終端,按照以下命令配置用戶名和郵箱,注意,沒有提示表示配置成功。

  配置用戶名:$ git config --global user.name "你本身GitHub的用戶名"

  配置郵箱:$ git config --global user.email "你本身GitHub的郵箱"

二、時光穿梭機(建立本地版本庫,並使用命令管理版本)

  什麼是版本庫?

  版本庫又名倉庫,能夠理解成一個目錄,這個目錄裏面的全部文件均可以被Git管理起來,每一個文件的修改、刪除,Git都能跟蹤,以便任什麼時候刻都有一個追蹤歷史,或者在未來某個時刻能夠還原。

  建立版本庫並使用命令管理版本:

  1)在一個合適的地方建立一個空目錄,好比wllgit;

  2)在終端中使用cd命令進入剛建立的空目錄(將文件夾拖入終端可快速輸入文件夾目錄),以下:

  3)使用git init命令把這個目錄變成Git能夠管理的倉庫

  4)把文件添加到版本庫(本地倉庫)

    在上面建立的目錄中建立一個文件(如demo.py),內容爲print("hello world!")

    把文件添加到倉庫,命令爲:$ git add domo.py

    把文件提交到倉庫,命令爲:$ git commit -m "這裏寫註釋"

    至此,咱們已經在電腦上建好了本地倉庫wllgit目錄,接下來學習如何使用倉庫管理版本。

  5)git status

    該命令可讓咱們時刻掌握倉庫當前狀態,以下圖:

  6)git diff
    該命令能夠查看修改內容,以下圖:

    當本地和倉庫文件內容不一致時,將文件再次提交便可,以下圖:

 

  7)git log或者git log --pretty=oneline(顯示從最近到最遠的提交日誌)

    以上步驟主要是將不一樣版本文件提交到倉庫,而且記錄每次提交日誌,接下來學習如何回退到以前的版本。

  8)版本回退

$ git reset --hard HEAD^
$ git reset --hard HEAD^^
$ git reset --hard HEAD~100
$ git reset --hard 具體版本號

    HEAD至關於一個指針,指向當前版本,以下圖:

  9)git reflog

    該命令記錄每一次的命令,以下圖:

  10)git checkout -- filename

    若是文件filename已經被放到暫存區(執行git add filename,但未執行commit又作了修改,此時,執行此撤銷命令,就會回到添加至暫存區的狀態。
    若是文件
filename自修改後尚未被放到暫存區(執行git add filename),此時,執行此撤銷命令,就會回到和版本庫如出一轍的狀態。

    總之,該命令就是讓文件filename回到最後一次git add或這git commit時的狀態。

  11)掌握了上述管理倉庫的操做,下面來了解相關概念,即工做區和版本庫。

    Git把管理的文件分爲了兩個區域四個狀態,以下圖:

    工做區:當前開發程序所在目錄稱爲工做區,即:工做開發都是在該目錄,該區域的文件會有狀態的變化且狀態由git自動檢測,若是程序中文件作任何操做(增、刪、改),文件狀態均會被檢測到,可使用【git status】命令查看。

    版本庫:工做區檢測到有文件發生變化,那麼意味着較上一個版本以後對程序進行了修改,修改完成以後,能夠當作下一版本進行提交,那麼就是執行【git add .】 將全部文件提交到暫存區,而後再執行【git commit -m '又一個版本'】提交到版本庫的分支便可,以後可使用【git log】命令查看版本記錄。

3、遠程倉庫

  GitHub是一個基於Git實現的代碼託管的平臺,能夠將內容以及版本記錄在遠程也保存一份,這樣就不用U盤來回拷了PS: 相似GitHub的產品還有許多,如:GitLab、Bitbucket、碼雲等。

  簡而言之,就是將咱們的代碼放在GitHub的服務器上,這樣,不論在哪裏,只要有網,就能夠將遠程倉庫(GitHub上)的代碼拉取下來,寫完代碼再同步上去。接下來介紹如何配置遠程倉庫。

一、配置基於GitHub實現代碼託管的步驟

  1)註冊GitHub

  2)建立ssh key

    打開Git bash黑屏終端,輸入命令 ssh-keygen  -t  rsa  -C  "GitHub中綁定的郵箱"

    查看公鑰內容,以下圖:

    在GitHub(我的中心 -> Settings ->SSH and GPG keys)中添加公有密鑰,以下圖:

    填寫完成後以下圖:

    測試密鑰是否經過,在Git Bash的黑終端輸入命令  ssh -T git@github.com

    測試經過後,再看github中的ssh是綠色鑰匙,以下圖:

  3)建立遠程倉庫

    點擊新建倉庫按鈕,以下圖:

    填寫倉庫信息,以下圖:

 

    建立完成後以下圖:

  4)使電腦關聯遠程倉庫

    複製GitHub中的SSH地址,以下圖:

    在電腦的Git Bash終端輸入命令 git remote add origin  遠程倉庫SSH地址

    刪除關聯命令(知道便可,此處沒必要執行)是 git remote rm origin

    推送本地庫內容到遠程庫命令 git push origin master

    拉取遠程庫內容到本地庫命令 git pull origin master

    注意:由於本篇先是創建了本地庫wllgit目錄,而且使用git init命令產生了.git文件,而後又將此本地庫關聯了遠程倉庫,所以,本庫庫和遠程倉庫是兩個版本,所以要先執行拉取遠程庫的命令,且加上容許版本不一致的參數,即 git pull origin master  --allow-unrelated-histories

    注意,執行命令後會進入一個vim的模式,使用你掌握的linux命令退出編輯便可!

    執行成功後,本地倉庫會多了一個README.md文件,以下:

    拉取完成後再執行推送的命令,以下:

    執行命令後,遠程倉庫中就與本地倉庫文件一致,以下:

    此時,你就能夠在電腦上對文件進行修改,而後再執行如下命令推送到遠程倉庫:

git add filename                     將修改文件添加到暫存區
git commit -m "修改內容註釋"         將暫存區內容提交到本地倉庫
git push origin master              將本地倉庫內容推送到遠程倉庫

  5)實際開發中使用Git的步驟

    上面創建本地倉庫,使用git init只是爲了演示本地倉庫配置,實際開發中,是應該先有遠程倉庫,再把遠程倉庫克隆到本地,克隆時就會自動生成管理本地倉庫的隱藏文件.git。

    假設已經在GitHub上創建是遠程倉庫,如今電腦上沒有本地倉庫,咱們須要將遠程倉庫內容克隆到本地,進入到合適的目錄執行克隆命令  git clone  遠程倉庫SSH地址 

    命令執行後,會在當前執行命令的目錄下產生一個文件夾,其中包含遠程倉庫的文件內容,且還有一個隱藏文件.git,以下圖:

    此時,你就能夠在電腦上對文件進行修改,而後再執行如下命令推送到遠程倉庫:

git add filename                     將修改文件添加到暫存區
git commit -m "修改內容註釋"         將暫存區內容提交到本地倉庫
git push origin master              將本地倉庫內容推送到遠程倉庫

    注意:若是項目中有.gitignore文件時,.gitignore文件中定義的文件夾不會被推送到遠程倉庫中。

相關文章
相關標籤/搜索