git的一些基本指令


## Git

### 什么是Git?
  - Git是一款源代碼管理工具(版本控制工具)
    - 我們寫的代碼需要使用Git進行管理。
  1.0是穩定
  2.0加了新功能
  - 源代碼有必要管理起嗎?
  - 有必要,因為人工的去處理不同的版本,做相應備份會很麻煩。
  - svn,vss,vcs,tfs.....
  -Git是linux之父當年為了維護linux---linus之前也是手動維護合並把文件發給Linus
  - BitKeeper(收費)
  - 有人想破解(不給提供免費使用)
  - linus自己寫了一個版本管理的工具(Git)


### 分布式版本管理工具,集中式
  - git屬於分布式
  - svn集中式 

### git安裝

### git初始化一個倉庫
  - 其實就是創建了一個.git隱藏目錄
  - 命令:` git init `;初始化 有一個.get 隱藏文件夾
    + 想在哪個目錄創建.git目錄,就是哪個目錄打開工具然后寫命令.
    + 一般是在項目的根目錄執行這個命令.
    + 查看文件 ls 或者 ls -a


### 配置信息
  - 配置用戶名 : `git config user.name "testName"`  
  - 配置郵箱   : `git config user.email "test@sina.com"`
  - 查看配置信息: `git config --list`


### 把代碼提交到倉庫中
  - 1.先把代碼添加到暫存區(就相當於放到倉庫門口)
    + 命令:`git add 文件路徑`
    + 示例:`git add ./reademe.md`
    + 可以使用`git add .`這個命令,批量把當前目錄下所有修改過的文件添加到暫存區。

  - 2.把暫存區的文件提交倉庫里
    + 命令: `git commit -m "注釋" `
    + 示例: `git commit -m "我們添加了一個新的功能"`
    + -m 表示指定一個字符串,作為提交的說明(相當於注釋);

  - 合並add 與commit 命令
    + `git commit -a -m "這是使用合並添加與提交的操作"`;
    + 這里-a參數表明把所有修改后的文件一起添加到暫存區.(只是對修改后的文件有效,對於新添加的文件沒有作用)


### 查看工作區狀態
  - 命令:`git status`


### 添加忽略文件
  - 在項目中有一些文件是不需要提交的,我們需要把它忽略掉
  - 需要在.git文件夾所在目錄新建一個名為.gitignore的文件
    然后在這個文件中寫上需要被忽略的文件的路徑。
    示例: /css/a.css
        : /css/*.css
        : /a.html


### 比對文件差異
  - 命令: `git diff`
    + 用來比較工作區內容與最近一次提交的內容的區別
    + 如果暫存區沒有文件,就會將工作與代碼與最近一次提交對比
  - 命令:`git diff --cached`  比較暫存區的文件和倉庫中文件的區別
  - 對比之前某兩次提交的文件的差異
    + 命令:`git diff [版本號1] [版本號2] [想比較的文件路徑]`

### 查看日志
  - 命令:`git log`,可以查看每一次提交的日志
  - 命令:`git log --oneline` 表示使用簡潔的形式輸出提交日志


### 版本回退
  - 命令:`git reset --hard Head~1`
    + 這是將代碼回退到上上一次提交時的狀態
  - 命令:`git reset --hard Head~2`
    + 回退到上上上次
  - 命令:`git reset --hard Head~0`
    + 回退到上次提交時的狀態,~0可以省略

  - 命令:`git reset --hard 版本號`
    + 通過每次提交時生成的版本號來回退版本

  - 通過`git reflog`命令可以查看之前所有版本切換的操作記錄,可以通過這個命令得到的版本號回退到指定的版本。

### 創建分支
  - 命令:`git branch [分支名]`
    + 創建一個新分支 分支名一般是 自己姓名的拼音或首字母+需求號
  - 命令:`git branch`
    + 查看當前所有的分支

### 切換分支
  - 命令:`git checkout [分支名]`
    + 切換分支后可以在切換后的分支中進行正常的操作

    創建和切換合在一起操作:'git checkout -b [分支名]'

### 合並分支
  - 命令:`git merge [分支名]`
    + 合並分支前先切換到主分支 master 然后在合並
    + git會將指定的分支合並到當前分支.

### 刪除分支
  - 命令:`git branch -d [分支名]`
    + 刪除指定分支,-d參數表示要執行刪除操作

### git提交中的沖突
  - 如果git不能自動合並分支,就會有沖突,我們需要手動解決沖突,然后再次提交
  - 同一個文件的同一行在兩個分支中不一樣

## github
### github與git
  - git 版本管理工具
  - github 就是一個網站,只是這個網站提供git服務器的功能


### 上傳代碼到git服務器(push)
  - 命令:`git push [遠程服務器地址] [遠程服務器的分支]`
     + 示例:`git push https://github.com/xxxxxxx.git master`

  - 上傳時可以使用一些簡化的命令
    + 將遠程服務器地址寫成變量的形式
      * `git remote add [變量名]  [遠程服務器地址]`
      * 示例:`git remote add origin https://github.com/xxxxxxxxx.git`
      * 這樣之后就可以直接使用origin來代替git push 后面寫的地址了
        `git push origin master`
  - 還可以盡一步簡化
    + 在push時加上-u參數,就會默認建立本地當前分支與遠程指定分支的關聯,下一次push時就不需要輸入分支名了`git push origin`;

## git使用ssh方式上傳代碼與github
  - git生成公鑰和私鑰
    + 命令:`ssh-keygen -t rsa`生成的公鑰與私鑰文件會在當用戶目錄的.ssh目錄下.


### 把代碼push到服務器時需要先pull一下
  - 在pull之后如果遠程的代碼與本地的代碼有沖突,git會先自動合並沖突,如果不能自動合並,就必需我們手動去處理沖突。

### 從服務器上pull代碼到本地
  - 如果本地沒有.git目錄,需要先初始化一下。
  - 命令:`git pull [遠程服務器地址] [遠程的分支]`

### gh-pages分支-搭建博客.
  - 需要把自已博客的網頁代碼上傳到github上的gh-pages分支
  - 然后就直接訪問了
    + 訪問的url形式: [github用戶名].github.io/[倉庫的名字]/[具體的頁面]


### sourceTree , tortoiseGit

http://t.cn/R6tx5jJ
### npm
  - 官網[https://www.npmjs.com]
  - node package manager
  - 命令:
    + 初始化:`npm init`
    + 安裝指定包:`npm install jquery --save`
    + 刪除指定包:`npm remove jquery --save`
    + 下載安裝package.json中dependencies屬性對的文-件:`npm install --production`

### browser-sync
  - 更改代碼之后自動刷新瀏覽器
  - 需要使用npm進行全局安裝:`npm install browser-sync -g`,-g表示安裝到全局
  - 使用:`browser-sync start --server --files "./index.html,app.css,./css/*.css,*.*" `
  - --files參數指定要監視的文件,后面跟要監視的文件的文件路徑以逗號分隔。

## gulp
  [官網](http://www.gulpjs.com)
  [中文網](http://www.gulpjs.com.cn)

- 前端自動化構建工具
  js壓縮,var x,xname,混淆
  合並.
  css壓縮
  html壓壓縮

- grunt ,webpack...


### 核心就5個方法
  - task,gulp中是一個個任務的形式來實現功能。
    + task('任務名',function(){
      .....
    });
  - src
    + src('./*.js')
  - dest('./minjs/')// 指定處理后的文件的輸出路徑.
  - watch('./*.js',['任務名1','任務名2']);
  - run('任務名');//執行指定的任務.

### gulp的安裝
  - 使用npm 進行安裝
  - `npm install gulp-cli -g`;

### gulp 使用

#### 使用時還需要在項目中通過npm非全局安裝gulp
  - `npm install gulp --save-dev`


#### 還需要在當前項目根目錄添加一個gulpfile.js文件來寫具體的任務代碼.

### gulp的一些插件
  - 也是使用npm安裝
  - 對js代碼進行壓縮 gulp-uglify
  - 對代碼進行合並 gulp-concat
  - 對css進行壓縮 gulp-cssnano
  - 對html進行壓縮 gulp-htmlmin



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM