---
# System prepended metadata

title: Git command and introduction
tags: [Git]

---

# Git command and introduction
###### tags: `Git`


- commit
推code

- branch
展開新的分支

- git checkout (目標名稱)
point就會指過去

- Merge
舉例原本可能在C1開發，一路延伸到C3，但C1有一個bug，你可能會先branch出來，並在C2嘗試bug fix，之後真的fix，你會需要Merge回原本的main lien.

    - git checkout main 指回main因為後續要與bugFix merge
    - git merge bugFix 當前指定的要與指令上的分支
![](https://i.imgur.com/Wn0xs2r.png)

- git rebase
rebasing 的優點是可以建立更線性的 commit history
git rebase main 會從另一個branch 回到main並接到main之後
![](https://i.imgur.com/358gSI0.png)



- git branch -f main HEAD 
強制將某個branch移動到HEAD



- git checkout HEAD~4
移動多步回到前面
![](https://i.imgur.com/dHgJ434.png)
