複習趴萬 - Git、Command line
放一些之前的筆記還有這陣子的複習,內容比較隨意。
交作業流程
請用文字一步步敘述應該如何交作業。
Ans:
git branch newBranchName
新開一個 branchgit chekcout newBranchName
切換到 branch- 寫作業,告一個段落後用
git commit -am '要記錄的內容'
,這邊 am 同時有 add ,所以會把新增、刪除的檔案都加入 git 做版本控制。 - 作業全寫完就用
git push origin branchName
把本地的 branch push 到遠端的 repo 上。 - 點擊 pull request 要求 merge
如何回到上一個 commit
會提到這個是因為上次 deploy 前發現大事不妙,居然改錯東西了,所以就先退回上一個 commit 版本。
這時候打:git reset HEAD^
就可以回到上一個版本
之前的筆記 - command line
基本 Command line 指令
指令名稱 | Description |
---|---|
pwd | 顯示目前自己的位置 |
ls | 列出所在地方的所有檔案 |
cd | 加空格鍵後,打出名稱就可移動至想要前往的目的地。(可用絕對、相對路徑來移動) |
man | 空格加上指令後,會有詳細的指令講解 |
touch | 觸碰一個檔案讓它更新最後修改時間,或者是建立檔案(自己實測 Windows 是沒有這指令) |
rm(ReMove) | 刪除檔案,如果要刪除整個資料夾的內容,可以加 rm -r 資料夾名稱 ,就可以把整個資料夾內容刪光。 |
mkdir(MaKe DIRectory) | 建立資料夾。 |
rmdir | 刪除資料夾。 |
mv(MoVe) | 移動檔案或者是幫檔案改名 |
cp(CoPy) | 複製檔案或資料夾,如果要複製資料夾則是 cp -r,這邊歸納出一個邏輯是:如果是關於資料夾內容的指令,無論刪除、複製等等,加上 -r 就可以了。 |
如何使用 Vim?
切換模式
Vim 是藉由切換模式來輸入的,按下 I 可以進入 Insert 模式,也就是輸入,如果沒按就會是 Normal 模式,在 Normal 模式你做甚麼它都不會屌你,但是只要按下 I 你要它幹嘛它都服從,Vim 真的很難搞。
解除 Insert 模式以及儲存並離開 Vim
離開輸入模式的方法是按下 esc,在 Normal 模式下按冒號 (:)然後輸入 w 和 q ,就會儲存並離開了。
進階 Command line 指令
指令名稱 | Description |
---|---|
grep | 抓取文件內的關鍵字 |
wget | 目前了解是可以下載網頁的樣子 |
curl | 發送一個 GET 的 Request 到目標 URL 並返回 reponse |
之前的筆記 - Git
Git 基本概念
簡單來說,git add
就是先暫存在某個地方,git commit
就像是遊戲存檔,並且會附註你這次存檔幹了甚麼。
Git 版本控制清楚記錄每個檔案甚麼時候更改或刪除,有 Git 幫我們做這些歷史紀錄,到時候就可以知道黑鍋誰該背了(?)當然我講的內容很隨便粗淺,詳細內容請參照 Git新手入門教學 以及 為你自己學 Git。
Git 基本流程-哼檔案都接受我的控制吧
git init
:讓資料夾進入版本控制的狀態- 建立
.gitignore
,把不要進行版本控制的檔案輸入進去 git add .
:把所有想加入版本控制的檔案先暫存,丟進 Staging Areagit commit -m "想輸入的內容"
:把所有暫存的檔案提交出去,-m 後輸入的內容會像是附註一樣,通常會寫更改了什麼東西。
怎麼知道每個檔案現在的狀態?比如有沒有被 add
隨時使用 git status
來查詢現在狀態。
怎麼知道每次 commit 的內容?
使用 git log
來看每次 commit 詳細資訊。
如果想回去之前的 commit 怎辦?
使用 git checkout [SHA-1](https://gitbook.tw/chapters/using-git/how-to-calculate-the-sha1-value.html)
,就可以前往到你想去的 commit。
Branch基本概念與操作
為甚麼要有 Branch ?
Branch 的概念大概就是像施放影分身之術一樣,可能同時有還沒完成的新功能、急著要修改的 Bug,但刪除或是隔離出還沒完成的新功能然後修改 Bug 這方法有點笨,不如把還在開發新功能的專案影分身出來,等到完成後再合併就好了!
如何創造Branch?
利用 git branch + 要創造的branch名
來建立新 branch。
如何切換branch?
跟先前切換 commit 一樣,利用 git checkout + branch名
。
如何合併Branch?
必須先身處在主要 branch 上,然後用 git merge + 你要合併的 branch 名
。
出現衝突怎辦?比如兩個branch都修改同樣的檔案
Git 會發現這點,然後不讓你合併,必須手動修改發生衝突的檔案內容,而內容如何修改就看個人決定。
Git 相關狀況劇
手殘,commit message 超常打錯怎辦?
用 git commit —amend
就可以更改了。
後悔之前整個Commit 了,可以回到上一動嗎?
使用 git reset HEAD^
就可以了。不過在這裡要補充,git reset 分為三種模式,差異在於把原本 commit 放置在哪一區,詳細介紹在這 剛才的 Commit 後悔了,想要拆掉重做…
git reset:
這個指令容易因為字義有所誤會需要特別註釋,所謂 reset 不是把原本所有的 commit 都丟掉的意思,而是暫時隱藏起來,也因此意思應該是「移動」到某某 commit,並且將先前 commit 隱藏。
取錯Branch的名字了,可以改名嗎?
用 checkout 進到那個 Branch,然後 git branch -m 新名字
怎麼取得遠端的branch?
這個功能讓我超驚豔的,怎麼能這麼方便呢?直接用 git checkout branch名
就可以了。