or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
7.6 0425 Git branch 分支
Examle 1 直線進行的分支
1. git branch 列出所有分支
2. git branch
cat
建立新分支3. git checkout
cat
切換到cat分支HEAD
: 上帝視角3-1 在
cat
branch送commit使用checkout之後送commit
cat
分支變為粗體字)3-2 git merge 合併分支 (先切回master)
跟master很像的分支,合併時會使用fast-forward快轉
(git圖示上master往前走,沒有小耳朵)
git checkout master
master
分支變回粗體字)git merge cat
=> 合併分支可以看成在移動貼紙(如下圖,
master
貼紙移動到與cat
貼紙相同的commit)4.
git branch -d
刪掉已合併的分支=> Git 的本體是commit, 分支只是浮雲
Examle 2 複雜一點的分支
y型merge
1. git branch
dog
建立新分支在目前HEAD所在地貼dog貼紙
2. git checkout
dog
切換到dog分支2-1 在
dog
branch送commit再進行一次存檔
HEAD像是令牌,只有領到令牌的分支才可以往前移動
2-2 在
dog
branch再送一次commit第二個分支長太大,這時候的合併就沒辦法fast forward了
2-3. git merge
rabbit
: 在dog分支合併rabbit分支rabbit分支也commit過一次,若此時dog分支想要合併rabbit分支:
1.長出一個合併的commit (dog和rabbit分支的公證人)
2.dog貼紙和HEAD往新的commit移動
*在Sourcetree打勾Checkout New Branch,代表建立分支之後立即切換過去該branch。
Example 3 讓合併的節點消失掉
git rebase
git rebase
: 變換根基/嫁接注意: 在git的世界裡,commit沒有辦法刪除,但透過
git rebase
可以將歷史commit記錄變成直線。現在有

dog
與bird
分支在HEAD是dog,
git rebase bird
: dog踩在bird分支的頭上merge和rebase的使用時機
rebase
優點:
拿來整理過多節點的時候,把節點拉成同條
缺點:
看不太出來歷史軌跡