git 常用指令
git rebase commit log -太多要用時,忘記,要再查一下的指令。簡單寫一下說明範例。
How
還沒 pull
但要修改更新 commit
-
改最後一次
commit
的敘述
> git commit --amend -m "last a commit"
-
不修改最後一次
commit
的敘述(將這次的 commit 合併到上一次)
> git commit --amend --no-edit
新增 tag
到 remote
> git tag -a v1.0.1 //(1)
> git push origin v1.0.1 //(2)
-
在本地新增一個 tag
-
將該 tag 推送到遠端倉儲
將所有的 tag
都推到 remote
> git push origin --tags
只更新一個遠端的檔案到本地
> git fetch // (1)
> git checkout origin/master -- path/to/file // (2)
-
將遠端的檔案都抓下來但不更新本地的檔案
-
將目前遠端 master 分支(origin/master)的某檔案 checkout 到本地
查某次 commit 的檔案列表
在查看 log
時,同時列出被 commit
的檔案。
> git log --name-only
> git diff-tree --no-commit-id --name-only -r <sha> // (1) (2) (3)
-
--no-commit-id 不輸出 commit ID(sha)
-
--name-only 顯示檔名
-
-r 遞迴目錄
diff-tree
比較兩個 commit
之間的差異。
比較簡化的命令
> git show --pretty="" --name-only <sha> // (1)
-
--pretty="" 抑制開頭的輸出。
git diff
比較目前工作目錄與最後一次 commit
之間的差異。
git diff <sha>
比較目前工作目錄與指定 commit
之間的差異。
git diff --cached <sha>
or git diff --staged <sha>
比較目前 stage
與指定 commit
之間的差異。
git diff <sha1> <sha2>
比較兩個 commit
之間的差異。
只秀出 log
簡短的結果
> git log --oneline
強迫將本地工作目錄全部更新為遠端版本
> git fetch --all // (1) > git reset --hard origin/master // (2)
-
從遠端下載最新版本,但不合併或重設任何內容。
-
reset 會將主分支重置為剛剛獲取的內容。--hard 會將所有文件改為與 origin/master 相同。
列出單一檔案的每次修改歷史
git log --follow -p -- path/to/file
合併前先看看有無衝突
> git merge <branch> --no-commit --no-ff
先暫存 處理完 再恢復
> git stash save // (1)
> git stash list // (2)
> git stash pop // (3)
> git stash drop // (4)
> git stash clear // (5)
-
暫存
-
列出暫存
-
取出暫存
-
刪除暫存
-
刪除所有暫存
>>
安裝 dante