Pros:
git log --grep 'some message'
Cons:
指令 | 說明 |
---|---|
git branch my-branch |
開始開發,開一個新分支 |
git checkout my-branch |
切換至該新分支 |
git add -p |
增加修改的檔案至暫存區 |
git commit -m"first commit" |
將暫存區的檔案提交至本地儲存庫 |
git fetch origin develop |
取得遠端分支的資訊 |
git rebase origin/develop |
遠端分支可能有更新,要先 rebase 分支 |
git push origin my-branch |
推當前分支至遠端 |
每個檔案都有三個對應的狀態:
participant 工作目錄
participant 暫存區
participant 本地儲存庫
Note over 工作目錄: 已追蹤,並且有變更的檔案/未追蹤的檔案
Note over 暫存區: 將被記錄的檔案
Note over 本地儲存庫: 已記錄的檔案
participant 工作目錄
participant 暫存區
participant 本地儲存庫
工作目錄->暫存區: git add -p
暫存區->本地儲存庫: git commit -m"增加新功能 blah blah..."
NOTE over 本地儲存庫: SHA1: 9afc5562
本地儲存庫-->暫存區: git reset 9afc5562 --soft
暫存區-->工作目錄: git reset
participant 工作目錄
participant 暫存區
participant 本地儲存庫
Note over 本地儲存庫: 9afc5562
本地儲存庫->本地儲存庫: git checkout 18872304
Note over 本地儲存庫: 18872304
只要有 git 就一定會處於 HEAD ,任何變更都會影響到當前的 HEAD
HEAD -> 9afc5562
HEAD -> feature/sticky-table-ernest -> 9afc5562
participant 工作目錄
participant 暫存區
participant 本地儲存庫
Note over 本地儲存庫: 9afc5562
本地儲存庫->本地儲存庫: git checkout 18872304
本地儲存庫->本地儲存庫: git checkout HEAD~
本地儲存庫->本地儲存庫: git checkout feature/sticky-table~
Note over 本地儲存庫: 18872304
HEAD 沒有指向任何分支,此時 Commit 一筆紀錄,僅 HEAD 自己會指到新的 SHA1,而其他分支不會影響
HEAD 指向某一分支,此時 Commit 一筆紀錄,HEAD、分支都會跟著指到新的 SHA1
延伸閱讀 HEAD~ HEAD^ 有何不同
participant 本地儲存庫
participant 遠端儲存庫
participant 開發者B的儲存庫
Note over 本地儲存庫: 版本一
本地儲存庫->遠端儲存庫: git push branch/tag
Note over 遠端儲存庫: 版本一
遠端儲存庫-->開發者B的儲存庫: git pull branch/tag
Note over 開發者B的儲存庫: 版本一
Note over 開發者B的儲存庫: 版本二
開發者B的儲存庫->遠端儲存庫: git push branch/tag
Note over 遠端儲存庫: 版本二
遠端儲存庫-->本地儲存庫: git pull branch/tag
Note over 本地儲存庫: 版本二
participant 工作目錄
participant 暫存區
participant 本地儲存庫
participant 遠端儲存庫
participant 開發者B的儲存庫
工作目錄->暫存區: git add -p
暫存區->本地儲存庫: git commit -m"移除未使用..."
Note over 本地儲存庫: 版本一
本地儲存庫->遠端儲存庫: git push branch/tag
Note over 遠端儲存庫: 版本一
遠端儲存庫-->開發者B的儲存庫: git pull branch/tag
Note over 開發者B的儲存庫: 版本一
Note over 開發者B的儲存庫: 版本二
Note over 開發者B的儲存庫: 版本三
開發者B的儲存庫 ->開發者B的儲存庫: git checkout HEAD~
Note over 開發者B的儲存庫: 版本二
開發者B的儲存庫->遠端儲存庫: git push branch/tag
Note over 遠端儲存庫: 版本二
遠端儲存庫-->本地儲存庫: git pull branch/tag
Note over 本地儲存庫: 版本二
本地儲存庫-->暫存區: git reset 9afc5562 --soft
暫存區-->工作目錄: git reset
直接找官方文件是最周全的方式:
此外也可以利用以下指令查詢:
git help
git help tutorial
git help everyday
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