Git
本篇為 [GIT101] Git 超新手入門 這門課程的學習筆記。
學習目標:
了解 Git 在做什麼,以及為何我們需要 Git
知道 add、commit、push、pull 等基本 Git 指令
我們其實曾接觸過版本控制,例如備份檔案,或是以不同檔名保存編輯過的檔案:
補充:GitHub 就是透過 Git 進行版本控制的軟體原始碼代管服務平台。
git init
:初始化當前目錄在當前位置新增 .git
隱藏資料夾,也就是建立 Git Repository(檔案庫)。目的是初始化這個目錄,讓 Git 對這個目錄做版本控管。
git status
:檢查當前版本狀態例如:未進入版本控管(Untracked)、新增檔案(New File)、刪除檔案(Deleted)、檔案已修改(Modified)等。是會經常使用的指令。
git add
:加入版本控制把檔案從 Untracked(不加入的檔案)移到 stage(加入版本控制的檔案)。
依照括號內提示可知:
git rm --cached <file>
:取消版控git add <file>
:加入版控git add .
把檔案全部加入版本控制。git commit
:新建版本git commit -m "message"
直接建立新版本git commit -am "message"
輸入 git commit -am "message"
可一次完成 add
和 commit
兩個指令動作。
-a
指令只對「已存在」的檔案有效;不適用於新加入的檔案(Untracked File)add
再 commit
,才能把新檔加入版控git log
:查看版本紀錄從新到舊列出,內容分別是版本號碼、提交者、提交時間。
git log --oneline
:輸出更簡短的 log,只用版本號前七碼代值git checkout
:切換到某個版本切換到某個版本,可查看過去的版本內容。
git checkout <版本號碼>
:切換到指定版本git checkout master
:切換到最新版本.gitignore
:忽略不要版本控制的檔案.gitignore
這個檔案本身也需加入版本控制。通常會加入忽略清單的檔案有:系統檔案、記錄檔、暫存檔等,可參考 Facebook 開源專案 React 裡的 .gitignore 為例子。
touch .gitignore
建立檔案vim .gitignore
進入 vim
介面git status
查看,可知 test 這個檔案已被 git 忽略git add .
把所有檔案加入版本控制,包括新舊檔案;
再用 git commit -m "message"
建立新版本複習上述指令,以下為開始使用 git 的流程:
git init
:初始化當前位置,讓 Git 對這個目錄進行版控.gitignore
忽略不需版本控制的檔案git add .
:把所有檔案加入版本控制(把東西放到一個暫存資料夾 temp
)git commit -am "message"
:新建一個版本(把 temp
資料夾改名為"版本號"
)
步驟 3.
把所有檔案加進版本控制,才能執行 commit
git diff
查看與上一版的差異git checkout <版本號>
: 可以切換各個版本(去到某個資料夾底下)
git checkout master
: 回到最新版本操作 Git 時突然每行句首都出現
>
這個符號,無法繼續輸入指令怎麼辦?解決方法:ctrl + d 即可退出。這種情況可能是因為只輸入了一邊雙引號或單引號,導致沒有輸入完成(輸入沒有閉合)。
git commit
指令送入版本庫HEAD
內容一致的狀態HEAD
內容不一致的狀態第一次輸入 git commit
指令時出現錯誤,跳出需要設定帳號和姓名的畫面,這時需輸入以下指令:
git config --global user.name "your name" // "換成自己的帳號和信箱"
git config --global user.email "your email"
參考資料:
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.
Syncing