Git總結

基本命令

首先咱們要配置咱們的用戶名和密碼

$ git config --global user.name "Your Name"node

$ git config --global user.email "user@xxx.com"git

初始化咱們的git本地倉庫(版本庫)

版本庫又叫倉庫(repository),這個目錄裏面的全部文件均可以被Git管理起來,每一個文件的修改、刪除都能被跟蹤。github

在合適的位置直接鼠標右鍵建立一個空目錄做爲倉庫,而後從Git-Bash命令行進入到該目錄,或者也可使用命令行建立空目錄,再進入到該空目錄中。  npm

如下給出建立並初始化git倉庫的代碼:  服務器

進入到倉庫的位置,我將倉庫放在了C:\Android\git-repositories目錄下,注意,使用cd命令進入到目錄中時,在Git-Bash中應該使用斜線」/」,  app

而不是反斜線」\」  字體

 

$ cd C:/DeskTop/git-repositoriesui

$ mkdir new_repository           建立新的目錄url

$ cd new_repository             進入到建立的目錄spa

使用init命令將當前目錄初始化爲Git倉庫

$ git init

Initialized empty Git repository in C:/DeskTop/git-repositories/new_repository/.git/

(顯示信息意思爲:初始化了一個空的Git倉庫,new_repository_1目錄下多了一個.git目錄,時用來管理版本庫的)

將數據提交到Git倉庫

第一步檢查咱們的須要提交的文件狀態

git status

這個時候窗口上就會顯示

他會告訴你你都修改了哪些文件。

第二步添加文件

$ git add .        添加全部的文件、文件夾

$ git add <file>   添加指定名稱的文件,<>內部寫文件全稱

注:若是文件沒有作出任何修改,則默認不會添加任何文件

第三步提交文件

$ git commit –m 「info」      提交本次事務,即將add的文件提交到git倉庫,引號內部表示本次提交的提示信息

而後可使用 git status 查詢咱們提交的狀態,這個時候若是 提交成功以後,文件名會變成綠色

第四步提交文件到遠程倉庫

$ git push  把文件提交到咱們遠程的github倉庫或者碼雲倉庫裏

查詢該文件和git倉庫中的文件的區別,即作了什麼修改

$ git diff <文件全稱>   若是已經add了,就打印不出有什麼修改了,這一步驟應該在add以前,即添加以前能夠用來看看作了什麼修改。

打印歷史記錄

$ git log

Commit xxx               commit id 版本號

Author:xxx<xxx@xxx.com>  提交人和郵箱

Date:xxx                提交的時間

    XXXX                 提交的信息(因此說,提交信息很重要!!!)

$ cat <文件全名稱>         顯示整個文件的內容

版本回退

$ git reset --hard head^

Git中,HEAD表示當前版本,就是最新提交的版本,即便用git log打印出來的位於第一位的版本,上一個版本就是HEAD^,上上個版本就是HEAD^^,  

當前向上100個能夠寫成HEAD~100。固然,還有一種方式就是直接使用commit id來代替HEAD^,好比版本號是asfdjashfkj3456787654323e4343,  

那麼就能夠直接使用命令:  

$ git reset --hard asfdjashfkj34567            使用前幾位表示便可,git會自動查找  

注:版本回退之後,使用git log打印的歷史記錄都是回退版本以前的數據,以後的都沒有了,不過放心,git總有後悔藥能夠吃噠~  

1.若是命令行窗口沒有關閉,直接去前面找commit id便可;  

2.若是命令行窗口關閉了,或者次日後悔了,能夠進入到該目錄下,使用git reflog命令來查看之前的每一次命令,能夠得到每次提交的commit id,  

就能夠版本回退了。  

$ git reflog     能夠查看命令歷史,包含提交的commit id

版本回退的原理

以前有過一回文件搞錯了,光找回就花了好幾個小事,一個文件一個文件的找。

其實簡單講,就是說只要進行了代碼提交,git內部都會按照時間節點進行記錄,每條記錄都有commit id做爲惟一標識(就像是鏈表每一個節點都有惟一的地址同樣),HEAD老是指向當前版本(就像指針同樣)。所謂的版本回退,僅僅是講Head從當前版本指向了指定的版本,而後將工做區的文件也修改了。

工做區和暫存區

Git和其餘版本控制系統的一個不一樣之處就是有暫存區的概念。

  • 工做區
    就是電腦裏能看到的目錄,好比上面建立的C:\DeskTop\git-repositories\new_repository文件夾就是一個工做區。
  • 版本庫
    工做區中有一個隱藏目錄.git,就是Git的版本庫,版本庫裏存放了不少的東西,其中最重要的就是state(或者叫index)的暫存區,
    還有Git爲咱們自動建立的第一個分支master,以及指向master的一個指針叫HEAD。

前面講到,將文件存入到Git版本庫裏,分兩步執行:

第一步:用git add命令將工做區的修改文件添加到暫存區;  (屢次操做)

第二步:用git commit命令將暫存區的全部修改內容提交到當前分支。(事務提交,包含第一步屢次操做,注意,不在暫存區的修改不會被commit)

 

一旦事務提交以後,若是對工做區沒有作什麼修改,那麼工做區就是乾淨的。

由於建立Git版本庫的時候,Git自動建立了一個master分支,因此如今git commit 就是往master分支上提交事務。

項目開發實戰-****app

1.  須要安裝的軟件:msysgit

2.  須要申請的帳號:

     一、公司GitLab帳號:向公司GitLab管理人員申請 – ***

     二、項目GitLab權限:向本項目的建立/管理人員申請 – 好比**app管理者 ***

3.  進入到GitBash命令行操做:

在主文件夾中右鍵鼠標使用Git Bash Here

本機地址爲:C:\DeskTop\git-repositories,本身建立的git倉庫地址

關閉證書驗證

$ git config --global http.sslVerify false

使用克隆命令將文件克隆在本地,這裏須要使用https

$ git clone https://gitee.com/*********/round.git

(輸入用戶名和密碼以後,將開始下載遠程倉庫,這裏僅僅下的是主分支-master)    

查看倉庫的分支狀況

$ git branch –a

顯示以下:

* master

  round/origin/HEAD -> origin/master      HEAD-遠程倉庫的當前分支是主分支

  round/origin/dev                        dev分支(全部操做都會合併到該分支)

  round/origin/master                 master分支就是主分支

建立本地倉庫的dev分支而且切換過去

$ git checkout -b dev

將遠程倉庫的dev分支代碼複製到本地dev分支

$ git pull origin dev

查看本地Git倉庫狀態

$ git status

On branch dev       -只有一個本地dev分支(可是內容已是遠程倉庫dev的內容了)

nothing to commit, working directory clean      -此時沒有任何修改,工做區很乾淨

查看分支狀態

$ git branch –a

上面顯示的是本地分支,綠色字體和」*」表示的是當前所在的分支,

下面紅色部分顯示的是遠程倉庫的分支。

建立本身的分支而且切換到本身的分支,在本身的分支寫代碼

$ git checkout -b selftext

這時就在本身的代碼編譯器裏寫本身的代碼

將全部修改文件提交到本地暫存區(staged),等待提交

$ git add .        注意:確保此時在本身的分支上進行操做,eg:dai(我本身的名字)

$ git commit –m 「xxx可寫提交的信息」     將本地暫存區的代碼提交到本身的分支上

切換到本地dev分支,並將遠程倉庫的dev分支的最新代碼拉下來

$ git checkout dev

$ git pull origin dev

(肯定本身的本地倉庫的dev分支已是最新的了)

切換到本身的分支,將dev分支合併到本身的分支上

$ git checkout selftext

$ git merge dev        將本地dev分支合併到本身的分支上

注意:此時已經將dev分支合併到本地的本身的分支上了,有時候可能須要解決代碼衝突問題,解決完畢後進行下面的操做。

 

若是有衝突,則須要再次進行add,commit操做。

解決衝突完畢後,切換到本地dev分支,將合併完畢的本身的分支合併到本地dev

$ git checkout dev

$ git merge selftext

推送到遠程服務器

$ git push origin dev

Git的進階操做

其餘命令

$ git remote –v   顯示遠程分支的名稱和url

忽略文件

有一些文件並不能上傳到git上。好比咱們npm install 安裝以後有的node modules

因此須要在項目的根目錄下建立一個名稱爲.gitignore文件,而後把要忽略的文件名填進去,Git就會自動忽略這些文件。  

不須要從頭寫.gitignore文件,GitHub已經爲咱們準備了各類配置文件,只須要組合一下就可使用了。

GIT GUI簡單使用

注意:我的建議使用命令行方式進行版本管理,可是可使用圖形化界面看本次代碼的改動,比較方便。   

      1.  在所在項目,右鍵選擇git gui

      2. 界面以下,若是會使用命令行,那麼一看就明白了

 

  3. 配置

     UTF-8:Edit-Options:

 

     若是以前設置好了,直接在項目中右鍵進入,那麼這些都不用設置:

 

  4. Add commit push很快完成,不用輸i入命令

 

  5. 查看代碼對比  若是想要查看全部的改動歷史,能夠:就能夠看到全部的代碼改動歷史,而不    用去網上看。注意,這裏能看到全部人的改動哦!!!很是強大!

 

  6. 設置和遠程倉庫關聯(若是從項目根目錄進入,則自動關聯,不用設置)若是須要設置,選擇remote-àAdd,參考以下:

 

  7. 新建項目,從遠程倉庫克隆  右鍵選擇git gui:選擇克隆已有版本庫。

相關文章
相關標籤/搜索