1.git diff 顯示unstaged(modify) 和staged 檔案差別

2. git add . 會成為staged狀態

3.git diff --cache_ 看上一個commit和現在staged(add)的不同

4.git diff HEAD 上一個COMMIT 和現在unstaged不同

5.git log --oneline 看commit記錄

共有三個版本

6.git commit --amend --no-edit 當忘了加一個檔案或什麼進去時,又不想commit後會多一筆記錄,所以只是修改上一個commit

7.git reset xxx.php

從staged(add)回到modify

8.git reset --hard HEAD ,假如你commit後修改了些東西,想回到commit的狀況

9.

git reset --hard HEAD^    :想回上一個commit     

 git reset --hard HEAD^^  :回上上一個commit 

git reset --hard HEAD~2 回到前兩個

git reset --hard   6791c76(id號)  回到某個Id號的commit

10. git reflog 當你回到過去commit想看未來commit的log

11.checkout 是與reset 相對,指定單個文件回到過去

12.git checkout 某檔回到過去而已,其他沒改動

-----------------branch

13.git branch 分支概念:

通常master是穩定版本給客戶用,分支則是為了開發而存在,不會影響master

14.git log --oneline --graph

log會加上星號代表分支

15.建立branch      dev分支

git branch xxx

15.1建立完切換到分支

git checkout -b xxx

16.git branch 查看分支  星號代表處在哪

17.git checkout xxx切換到dev分支

18.刪分支git branch -D xxx

19.git commit -am 'ccc'   會將已經包含在前一個commit文件也提文

20.git merge --no-ff -m '合併' xxx

21.     error : you need to resolve your current index first   

merge發生衝突

git reset --merge 回到過去

master
xxx
<<<<<<< HEAD
eee
=======
ccc
>>>>>>> master

刪掉沒必要的,存檔commit 

22.merge失敗原因,branch同時修改,master,dev

---------------

23.rebase 是很危險的動作

master    a->y->o->b

dev           ->e->f->g

rebase會變

a->e->f->g->b(不再是原本的b)

23.1 merge

master    a->y->o->b

dev           ->e->f->g

merge後會變

master    a->y->o->b ->h

dev           ->e->f->g/

 

 

24.git stash  將開發的工作放一邊,執行另外的修bug工作

如dev分支開發到一半要修改master的bug

checkout 到master另外開個edit bug 分支

再merge master

要回剛剛開發的工作就checkout dev

再git stash pop

 

 

arrow
arrow
    全站熱搜

    學習程式 發表在 痞客邦 留言(0) 人氣()