找出共同父節點。
以TARGET_BRANCH
作為基點,插入當前分支之共同父節點之上的節點。
並將雙方共同父節點之上之節點進行合併。
如果合併過程中有衝突,將其解決,並生成新的提交加至到歷程最頂。
git rebase ${TARGET_BRANCH}
將HEAD
與SHA1
之間的提交分別進行操作。
pick - 使用該次提交內容。
squash - 使用該次提交內容,將內容融入前一個被pick
的提交。
git rebase -i ${SHA1}^
將staged
檔案全退至unstaged
。
git reset HEAD .
將staged
檔案退至unstaged
。
git reset HEAD ${FILE_PATH_1} ${FILE_PATH_2}
將HEAD
到SHA1
之間的提交撤銷,並將異動unstaged
。
git reset ${SHA1}^
以TARGET_BRANCH
分支內容,覆蓋當前分支。
git reset --hard ${TARGET_BRANCH}
還原選定提交的修改,並將還原之內容staged
。
git revert --no-commit ${SHA1}
還原SHA1
到SHA2
內(包含自身)之提交,並將還原之內容staged
。
git revert --no-commit ${SHA1}^..${SHA2}
將某個提交加入當前分支。
git cherry-pick ${SHA1}
查看操作歷程,可以回退到那些SHA
值之狀態。
git reflog
比對分支之檔案差異。BRANCH_A
內容以 --- 表示。BRANCH_B
內容以 +++ 表示。
git diff ${BRANCH_A}..${BRANCH_B}
合併TARGET_BRANCH
分支到當前分支,且不快進。
git merge --no-ff ${TARGET_BRANCH}
切換分支至TARGET_BRANCH
分支。
git checkout ${TRAGET_BRANCH}
以當前分支及狀態切換並建立本地分支。
git checkout -b ${TRAGET_BRANCH}
將unstaged
檔案全清除。
git checkout .
將指定位置的unstaged
檔案清除。
git checkout ${FILE_PATH_1} ${FILE_PATH_2}
查看當前分支異動狀態。
git status
查看節點歷程圖。
git lg
查看節點歷程,能看見有哪些檔案異動及異動行數。
git ll
以遠程倉庫所有分支之最新內容,自動更新本地遠程分支內容。
git fetch
將當前分支內容強制複寫至遠程倉庫。
git push -f
刪除遠程倉庫分支。
git push ${REMOTE_NAME} :${BRANCH_NAME}
將unstaged
檔案全staged
。
git add .
將指定位置的unstaged
檔案staged
。
git add ${FILE_PATH_1} ${FILE_PATH_2}
查看本地分支。
git branch
查看遠程分支。
git branch -r
查看所有分支。
git branch -a
刪除分支。
git branch -d ${TARGET_BRANCH}
強制刪除分支。
git branch -D ${TARGET_BRANCH}
下載倉庫到當前命令行指向的位址。
git clone ${URL}
拉取遠程倉庫當前分支的最新內容,並同步至本地。
git pull