iT邦幫忙

2023 iThome 鐵人賽

DAY 4
1

前言

上一篇講了建立git 時使用的指令,這一篇我們就來看看,實際做專案時,經常用到的指令有哪些吧。


基本指令

本來是表格,但放在文章上會跑掉,等等的格式如下:

指令
用處

add 檔案名 or add .
將新增的或修改過的檔案,交到暫存庫。後面寫的就是指定要加入暫存庫的檔案, . 代表所有檔案。

commit
暫存區的檔案提交到儲存庫(Repository),需要寫註解。

pull
將遠端檔案拉下來,遠端數據庫的內容自動合併。

push
將自己分支檔案推到遠端。

fetch
取得遠端的最新記錄,fetch + merge = pull。只是想確認遠端數據庫的內容卻不是真的想合併就可以使用fetch

switch
切換分支。

checkout
切換分支+檔案管理。/放棄修改尚未commit的檔案(可指定也可全部 . )。

merge
合併分支。將當前的分支與指定的另一dev分支合併。

reflog
會顯示你操作的每個git步驟。

基本指令含參數

以下整理git指令之中的參數代表的意思

有標註(!)的,代表後面還會有示意圖

指令
參數
(用法)
用意

add
-p 
git add -p (!)
可選放修改的檔案的其中一部份至暫存。

-i
git add -i (!)
git會以互動方式詢問要放進暫存中的檔案。

-u
git add -u
只放已提交過的檔案進暫存,且不會提交新檔案。

-f
git add -f ‘檔案名’
強制添加某檔案。

commit
-m
git commit -m ‘commit文字’
可直接提交且含commit訊息,否則git會啟動修改提交修改訊息的編輯器。

-a
檢測有被修改(不含新增)的檔案,加入暫存並且提交。

-am
加入暫存+編輯commit名+提交。

--amend
撤銷先前的commit。

status
-s
會顯示已修改的檔案名稱。

-s -b
再加上-b,則是會顯示分支的名稱。

diff
顯示有沒有add進暫存庫的檔案差異。

--cached
顯示暫存庫和HEAD的差異。

push

-u
git push -u origin 分支名
記住對應關係(本地跟遠端的關係),往後就可以直接push推送至遠端。通常是建立新遠端分支時可用。

-f
-force git push -f (origin 分支名)
強制更新遠端的分支,要小心使用;等同於 -force

--set-upstream
--set-upstream origin 分支名

branch
查看本地分支。

branch 分支名
建立分支(但不切換)。

-a
查看本地及遠端的分支。

-m
在建立分支的同時切換至該分支。

-d
刪除某分支;在分支已經合併過了後(沒有未保存的內容?),指令才會成功。

-D
強制刪除某分支。

checkout
切換分支。

**checkout . **
可以在commit之前回復檔案的所有,不用一個個按ctrl+Z 回復。

merge
合併兩分支,預設會產生兩個節點。

-ff --no
如果是當前分支去合併自己的子節點,那git 會預設用 fast forward 的方式合併,這樣是不會產生新節點的。加上--no來讓git不要用fast forward操作。

reset
git reset HEAD
還原檔案狀態

--hard
git reset --hard HEAD~1
還原檔案狀態,並清除在 還原以前 的檔案紀錄

--soft
git reset --soft HEAD~1
可以保留

--mixed


補充

push不上去的狀況(有可能的原因)

可能是退過版(reset過),找不到前面全部的紀錄,這時要用 git push -f

實驗

提醒:ctrl+C 即可跳出當下指令

https://ithelp.ithome.com.tw/upload/images/20230918/20162572HkX5TbcqLx.png
已經改過一些東西的初始圖

git add -p
會問你 Stage this hunk [y,n,q,a,d,e,?]?
https://ithelp.ithome.com.tw/upload/images/20230918/20162572GKXjunN483.png
會出現”某檔案哪裏有修改”以及問你"要不要將這隻檔案加入暫存區”,可以逐項確認

git add -i
互動的編輯模式
https://ithelp.ithome.com.tw/upload/images/20230918/20162572kAlnqzywAD.png
git add -i 會出現的畫面,輸入s、a、r...


使用步驟

是一些很基本的步驟筆記,基本上只要理解了也不需要背或看了

一般推上去的步驟

先拉再推,先更新最新的下來,否則會把人家的東西蓋掉。

  • 先看一下遠端有沒有更新 git fetch
  • git add .
  • git commit -m ‘……’
  • git pull
  • git push

開發到一半要從develope建自己的新分支

  • 先切換至別的分支(例為 develope ) git checkout 別的分支(例為 develope )
  • 直接建立+切換過去新分支 git branch 新分支名
  • 新分支有了目前的develope版本,完成~

改已經commit了的註解

  • commit --amend
  • i I 為進入編輯指令,會出現互動的模式/預設的編輯器)
  • 結束的話就 esc 離開編輯
  • :wq 儲存write並退出quit

參考資料/延伸閱讀:
https://backlog.com/git-tutorial/tw/reference/basic.html#sec1
https://www.bookstack.cn/read/git-tutorial/docs-basic.md (這很讚ㄟ)
https://zlargon.gitbooks.io/git-tutorial/content/file/modify.html
猴子都能懂的git入門指南 https://backlog.com/git-tutorial/tw/stepup/stepup3_2.html

https://ithelp.ithome.com.tw/upload/images/20230918/20162572FMgC4VFPbZ.png
今天就到這,如有說明不周或錯誤的地方,還請多留言討論(鞠躬)。


上一篇
Git 的剛開始
下一篇
GIT 稍微進階一點的指令
系列文
前端菜雞_賀周歲成長日誌31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言