git 操做說明

1 新建倉庫

初始化 一個git倉庫:    使用命令   ***git init **
複製代碼

2 提交文件

分兩步執行git

2.1 添加到暫存區

使用命令見文件添加到緩存區: **git add ( fileName )** 

      多個文件用逗號隔開 : **git add   文件名1 , 文件名2  **

       直接添加全部 :   **git add  .**   	
複製代碼

2.2 提交到本地倉庫

使用命令 : git  commit -m "提交說明"

屢次修改本地文件 而後 git add  . 會將屢次提交的文件變化一次性提交到本地倉庫
複製代碼

3 查看提交文件

3.1 查看當前倉庫狀態

git status緩存

若是沒有提交的文件,會顯示  working tree clean , 表示工做目錄是乾淨的!
複製代碼

3.2 查看當前文件修改詳情

git diff 文件名bash

diff  : difference  
複製代碼

3.3 查看版本歷史記錄

git logui

git log命令顯示從最近到最遠的提交日誌記錄。spa

若是嫌輸出信息太多,看得眼花繚亂的,試試這個命令:  git log --pretty=oneline 
複製代碼

3.4 退回版本

3.4.1 退回版本時候必須得知道當前版本

HEAD表示當前版本日誌

HEAD^ 表示上一個版本code

HEAD^^表示上上一個版本開發

以此類推.....

    表示第100個版本我門能夠用 HEAD~100
複製代碼

3.4.2 退回到上一個版本

git reset --hard HEAD^rem

3.4.3 不想退回上一個版本,想回到之氣前版本

git reset --hard 版本號(也就是一串很長的版本id)get

若是在恢復到最新版本,可是又忘記 commit id 了, 能夠試試這個命令會記錄每一次你使用的每一次命令!
複製代碼

gti reflog

3.5 撤銷修改

丟棄工做區區的修改(也能夠手動刪除)

$ git checkout -- 文件名
複製代碼

命令git checkout -- readme.txt意思就是,把readme.txt文件在工做區的修改所有撤銷,這裏有兩種狀況:

一種是readme.txt自修改後尚未被放到暫存區,如今,撤銷修改就回到和版本庫如出一轍的狀態;

一種是readme.txt已經添加到暫存區後,又做了修改,如今,撤銷修改就回到添加到暫存區後的狀態。

`

3.6 刪除文件

git rm 文件名

3.7 恢復文件

git checkout -- test.txt
複製代碼

3.8 分支管理

新建分支

git branch 分支名

切換分支

git checkout 分支名

查看分支

git branch

當前分支會顯示帶 *

合併分支

git merge 命令用於合併指定分支到當前分支(切換後的分支)

git merge 分支名

git log --graph`命令能夠看到分支合併圖。

刪除分支

git branch -d 分支名

3.9 bug分支

修復bug時,咱們會經過建立新的bug分支進行修復,而後合併,最後刪除;

當手頭工做沒有完成時,先把工做現場git stash(會將本地工做區修改的文件變化隱藏起來,git status命令是沒法看到的)一下,而後去修復bug,修復後,再git stash pop,回到工做現場。

查看bug分支 git stash list

3.10 新功能分支feature

開發一個新功能分支

開發一個新feature,最好新建一個分支;

若是要丟棄一個沒有被合併過的分支,能夠經過git branch -D <name>強行刪除。

3.11 多人協做

  • 查看遠程庫信息,使用git remote -v
  • 本地新建的分支若是不推送到遠程,對其餘人就是不可見的;
  • 從本地推送分支,使用git push origin branch-name,若是推送失敗,先用git pull抓取遠程的新提交;
  • 在本地建立和遠程分支對應的分支,使用git checkout -b branch-name origin/branch-name,本地和遠程分支的名稱最好一致;
  • 創建本地分支和遠程分支的關聯,使用git branch --set-upstream branch-name origin/branch-name
  • 從遠程抓取分支,使用git pull,若是有衝突,要先處理衝突。

重要的總結

  • HEAD指向的版本就是當前版本,所以,Git容許咱們在版本的歷史之間穿梭,使用命令git reset --hard commit_id
  • 穿梭前,用git log能夠查看提交歷史,以便肯定要回退到哪一個版本。
  • 要重返將來,用git reflog查看命令歷史,以便肯定要回到將來的哪一個版本。

git reset命令既能夠回退版本,也能夠把暫存區的修改回退到工做區。當咱們用HEAD`時,表示最新的版本。

場景1:當你改亂了工做區某個文件的內容,想直接丟棄工做區的修改時,用命令git checkout -- file

場景2:當你不但改亂了工做區某個文件的內容,還添加到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset HEAD <file>,就回到了場景1,第二步按場景1操做。

查看工做目錄和暫存區去的差異

git diff

工做目錄和本地倉庫差異

git diff HEAD

暫存區和本地倉庫差異

git diff --cached

詳細請查看 原文

相關文章
相關標籤/搜索