複習趴萬 - Git、Command line

放一些之前的筆記還有這陣子的複習,內容比較隨意。

交作業流程

請用文字一步步敘述應該如何交作業。

Ans

  1. git branch newBranchName 新開一個 branch
  2. git chekcout newBranchName 切換到 branch
  3. 寫作業,告一個段落後用git commit -am '要記錄的內容',這邊 am 同時有 add ,所以會把新增、刪除的檔案都加入 git 做版本控制。
  4. 作業全寫完就用 git push origin branchName 把本地的 branch push 到遠端的 repo 上。
  5. 點擊 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 基本概念

image

簡單來說,git add 就是先暫存在某個地方,git commit 就像是遊戲存檔,並且會附註你這次存檔幹了甚麼。

Git 版本控制清楚記錄每個檔案甚麼時候更改或刪除,有 Git 幫我們做這些歷史紀錄,到時候就可以知道黑鍋誰該背了(?)當然我講的內容很隨便粗淺,詳細內容請參照 Git新手入門教學 以及 為你自己學 Git

Git 基本流程-哼檔案都接受我的控制吧

  1. git init:讓資料夾進入版本控制的狀態
  2. 建立 .gitignore,把不要進行版本控制的檔案輸入進去
  3. git add .:把所有想加入版本控制的檔案先暫存,丟進 Staging Area
  4. git 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名 就可以了。