git基本用法

如下均針對前端來進行簡單介紹和整理:前端

1、Git介紹git

Git是一個開源的分佈式版本控制系統,能夠有效、高速地處理從很小到很是大的項目版本管理。github

所謂版本控制應實現如下幾點,解決多人協做問題,提升開發效率,實現版本控制windows

能夠理解爲一個工具,能夠和代碼倉庫一塊兒使用。咱們實驗室用的代碼倉庫是coding.bash

 

2、git的庫結構

 

建立項目的流程以下:服務器

一、項目經理先建立一個本地庫和遠程庫,此時遠程庫是空的,文件、目錄和歷史記錄都在他的本地庫,將本地內容push到遠程庫。
二、軟件開發人員將遠程庫clone下來,clone操做不只會下載內容,還會建立、初始化令狐沖的本地庫。他在本地修改代碼,在push到遠程庫以前,須要先加入該項目團隊才能夠提交。對於其餘人的修改、更新提交到遠程倉庫,能夠pull到本身的本地庫。ssh

暫存區:臨時存儲,打算要提交還沒提交,從此能夠提交本地也能夠撤回。
本地庫:存儲每個歷史版本。分佈式

3、Git的安裝配置工具

一、下載windows版本的git的地址:https://git-scm.com/download/win ,選擇對應版本進行下載,安裝過程簡單,僅須要點擊next便可。學習

二、安裝後,右鍵選擇git bash,配置用戶我的信息,指令以下:

git config --global user.name 「hxxxe」
git config --global user.email "hxxxehxx@163.com

這一步的做用的用來區分不一樣的用戶,咱們可使用git config --list指令來查看咱們配置的結果:

 3.咱們要使用git克隆coding上的代碼或者上傳本地代碼,因爲許多 Git 服務器都使用 SSH 公鑰進行認證。 爲了向 Git 服務器提供 SSH 公鑰,咱們要生成一份SSH 公鑰。 先確認本身是否已經擁有密鑰,若是沒有就在本地使用git生成一個公鑰,再把這個公鑰添加到coding的SSH公鑰就能夠了。

(1)在git命令窗口輸入指令:cd  ~/.ssh 檢查電腦中是否有ssh key存在

若是存在,則會顯示以下,id_dsa 或 id_rsa 命名的文件,其中一個帶有 .pub 擴展名。 .pub 文件是你的公鑰,另外一個則是私鑰。 若是找不到這樣的文件(或者根本沒有 .ssh 目錄):

(2)若是不存在,輸入指定:$ ssh-keygen 來生成公鑰:

首先 ssh-keygen 會確認密鑰的存儲位置(默認是 .ssh/id_rsa),而後它會要求你輸入兩次密鑰口令。若是你不想在使用密鑰時輸入口令,將其留空便可。最後會生成文件在指定位置。

(3)生成ssh公鑰後複製 .pub 文件內容,添加到coding就會有權限了。 公鑰形式相似以下:

 

4、git的使用

咱們會使用到的git基本指令有這麼幾句:

一、克隆
  clone已有倉庫
  git clone git@github.com:XXX/yyyy.git //XXX爲github的用戶名,yyy爲倉庫名

二、提交

       git pull //拉取最新代碼
  git add mmm.sss //mmm爲文件名稱,sss爲文件拓展名(經常使用git add .)
  git commit -m "hhh" //hhh爲git commit 提交信息,是對這個提交的概述

  git push //更新GitHub上的倉庫

三、查看提交日誌

        git log 

四、更改提交的操做

  git reset //回溯歷史版本

  git reset --hard //回溯到指定狀態,只要提供目標時間點的哈希值

  git reset --hrad ddd //ddd爲要推動歷史的哈希值

 

咱們不經常使用的git指令

一、用git建立倉庫

  mkdir nnn //倉庫名

  cd hhh

  git init //初始化倉庫

  git status //查看倉庫狀態

  touch README.md //建立READEME.md文件

  git add ERADME.md //添加ERADME.md至暫存區

  git commit -m "hhh" //若是想要提交信息記錄的更詳細,請不要加 -m

  git log --pretty=short //加--pretty=short 只顯示提交信息的第一行

  git log ggg //ggg是指指定的文件或目錄,用於查看指定的目錄、文件的日誌

  git log -p //查看提交所帶來的改動

  git log -p ggg //查看指定文件的改動

  git diff //能夠查看工做樹,暫存區,最新提交之間的差異

  git diff HEAD //查看工做樹與最新提交的差異

二、分支操做

  git branch //顯示分支一覽表,同時確認當前所在的分支

  git checkout -b aaa //建立名爲aaa的分支,而且切換到aaa分支
  (git branch aaa //建立名爲aaa的分支
  git checkout aaa // 切換到aaa分支
  )能和git branch -b aaa 獲得一樣的效果

  git checkout - //切換到上一分支

三、合併分支

  git checkout master //切換到master分支

  git merge --no--ff aaa // 加--no--ff 參數能夠在歷史記錄中明確地記錄本次分支的合併

  git log --graph //以圖表形式查看分支

 

四、推動歷史

  git reflog //查看倉庫的操做日誌,找到要推歷史的哈希值

  git checkout master

 

五、修改提交信息 git commit --amend

  壓縮歷史 git rebase -i 錯字漏字等失誤稱做typo

  根據之前的步驟在GitHub上建立倉庫,應於本地的倉庫名相同 GitHub上面建立的倉庫的路徑爲git@github.com: 用戶名/倉庫名.git

  git remote add eee git@github.com: 用戶名/倉庫名.git //添加遠程倉庫,並將git@github.com: 用戶名/倉庫名.git遠程倉庫的名稱改成eee

  git push -u eee master //推送至遠程倉庫 master分支下 -u 參數能夠在推送的同時,將eee倉庫的master分支設置爲本地倉庫的當前分支的的upstream(上游)。添加這個參數,未來運行git pull命令從遠程倉庫獲取內容時,本地倉庫的這個分支就能夠直接從eee的master分支中獲取內容

  git checkout -b feature d eee/feature d //獲取遠程的feature d分支到本地倉庫,-b參數後面是本地倉庫中新建的倉庫的名稱

  git pull eee feature d //將本地的feature d分支更新爲最新狀態

  在GitHub上面查看兩個分支之間的差異,只須要在地址欄中輸入http://github.com/用戶名/倉庫名/分支1...分支2

六、查看master分支在最近七天內的差異
  http://github.com/用戶名/倉庫名/master@{7.day.ago}...master (一樣,day,week,month,year都是能夠噠)

七、查看與指定日期之間的差異
  http://github.com/用戶名/倉庫名/master@{xxxx-xx-xx}...master (xxxx-xx-xx表明年月日)

 

  到這裏,git相關的命令不少,你們能夠根據操做時的須要去具體學習。

相關文章
相關標籤/搜索