03/21
git config --list
- 列出config內容
- git log ^A ^B C => 表示不包含A和B,但有C的commit
git bisect start
- 開始搜尋
git bisect bad/good
- 第一次bad/good是用git定位revision是好或不好的
- 之後使用bad/good是回答git,目前的revision是好或不好的
git bisect reset
- 回復原有的branch
git show-branch A B
- 顯示branch A B之間的commit
git ls-files -s
- 列出object和files的對照表
git cat-file -p SHA
- 列出特定object的內容
git show SHA:/path/to/file
- 顯示特定版本的檔案內容
git show SHA:/path/to/file
- 顯示特定版本的檔案內容
git checkout --ours/--theirs
- 選擇在衝突時,是選擇目前的或對方的分支
git diff --theirs
- 出現衝突時,顯示對方的分支與目前的版本的差別
git diff :[SHA]:[FILE] :[SHA]:[FILE]
- 顯示不同版本檔案的差別
合併方式:
- 退化的合併
a. 已是最新: 不合併,因為已經有最新的revision
b. 快轉 (fast-forward): 只將HEAD移動到最新的revision,因為有相同的revision
- 正常的合併
a. 解決
b. 遞迴
c. 章魚
- 特別的合併
a. 我們的
b. 子樹
git merge -s [合併策略]
git checkout v2.3 -- path/to/file.c
- 取出 v2.3 的 file.c (還原到v2.3的file.c)
03/28
HEAD => 目前最新的commit
ORIG_HEAD => 某些動作,如merge or reset,會將前一版的HEAD放到ORIG_HEAD
FETCH_HEAD => 上一次執行fetch的HEAD,僅在執行後有效
MERGE_HEAD => merge後的HEAD
git rev-parse master
- 取得master的SHA
git remote rm
- 移除指定的遠端容器
git remote add origin [URL]
- 新增遠端倉庫
git remote update
- 更新遠端倉庫
git remote show origin
- 顯示遠端倉庫的資訊
git branch local_branch origin/remote_branch
- 建立一個local branch與遠端branch進行連結
refspec語法: [+] source : destination
1. 只用 source => git push origin foo => 建立branch
2. 只用 destination => git push origin :foo => 刪除branch
git clone --reference/--local/--shared => 節省空間
git rev-list --no-merges -v since..until => 檢驗since到until會有那些集合
留言
張貼留言