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.3 0505 Git小劇場 part2
Case1. 剛剛做了一次commit,後悔了想拆掉重做
預設情境
解法
解法一: 絕對位置
git reset e12d8ef
解法二: 相對位置
git reset HEAD^
GUI
在想復原的前一顆commit:
-> Reset current branch to this commit
-> Using mode:
Mixed - keep working copy but reset index
(保留檔案)
結論: 使用
git reset
Case2. 合併發生衝突了,怎麼辦?
預設情境
member分支想合併payment分支
解法
解法一: (CL)
git status
觀察情況<<<<<<<
: 原本的檔案 (current change)>>>>>>>
: 預計合併的檔案 (incoming change)接受兩者變更
git status
index.html
檔案仍在工作目錄結論: 修改merge後顯示為conflict的檔案,再add. commit
解法二: (Source Tree)
合併member分支到payment分支
在member上點右鍵 -> merge
提示窗出現
conflict!
提醒要修改點選預計合併的灰點
驚嘆號「!」檔案按右鍵: Resolve Conflict
再完成add -> commit的步驟
Case 3. 不小心把還沒合併的分支砍掉了,如何救?
預設情境
站在master刪除dog
訊息顯示:
還沒合併,是否刪除分支?
確認刪除分支,用
-D
大D做參數解法
只要把dog貼紙貼回去,dog分支的commit就會再度有人看管
解法一: (CL)
按下q離開
解法二: (Source Tree)
Sourcetree頁面上方
Branch
->New Branch
命名new_dogspecified commit:
053fb21
出現新分支
若要再度刪掉
new_dog
分支,需切換分支才能刪除結論: 刪掉分支後,把貼紙貼回去,分支就會再長回來
注意: 若太久沒使用(1,2個月後), git的回收機制會把commit收掉
Case 4. 回到過去的某個commit再做一個新的分支出來
預設情境
解法:
Sourcetree頁面上方
Branch
->New Branch
命名st-branchspecified commit:
cef6e40
出現新分支
在新分支長新的commit
Case5. 不小心使用hard模式Reset某個Commit, 如何救回來?
使用情境
檔案全部都不見了,只剩下
git init
解法: 使用
git reflog
按q然後
Case 6. 某個分支的某些commit做的不錯想收進來,但又不想合併整個分支
預設情境
切到fish分支
想在dog分支把fish分支的whale檔案包進來
但是不要shark, dolphin, gold fish檔案
解法: 使用
cherrypick
cherrypick單字意思: 挑選對自己有利的
兩個分支都會有whale檔案