Skip to main content

Git 常用指令

init 初始化

git init

clone 從遠程儲存庫複製一份完整的代碼到本機

git clone Remote repositoryurl

status 檢查儲存庫狀態

git status
  • 顯示當前儲存庫狀態,包括已修改的文件和未跟蹤的文件

add 將文件加入暫存區

git add file_name
  • 將當前工作目錄的修改文件加入暫存區準備提交
git add .
  • add. 將所有已修改的文件添加到暫存區

commit 提交變更

git commit -m "commit message"
  • 提交已經加入暫存區的變更
git commit -a -m "commit message"
  • 提交所有暫存區的變更

diff 查看提交差異

git diff $COMMIT1 $COMMIT2
  • 查看兩次提交之間的差異
git diff $BRANCH1 $BRANCH2
  • 查看分支差異:比較兩個分支之間的差異,可以查看哪些文件在兩個分支之間有不同

log 查看歷史記錄

git log
git log--all
  • 顯示提交歷史,包括提交的作者、日期和提交消息。加上--all,會列出Git存儲庫中的所有提交,包括所有分支和歷史紀錄。可以查看存儲庫的完整歷史和所有分支的提交紀錄。
git log --oneline --all --graph
  • 用圖形化方式看 log 資訊
git log old_tag_name..new_tag_name --pretty='%s' --reverse
  • 查看兩個 tag 或 commit 間增加了哪些 pr
git log 20200909..20200909-1 --pretty='%s' --reverse
  • GitHub repo 設定中的 Allow merge commits 有打勾
git log 20200909-3..20200909-4 --pretty='%s' --reverse`GitHub repo 設定中的 Allow #merge commits 沒打勾

branch 列出所有本地分支的清單

git  branch
  • 當前分支會有星號標記
git branch -a
  • 列出所有本地和遠端分支的清單
git branch $BRANCH
  • 建立新的分支
git branch -d $BRANCH
  • 刪除分支:刪除指定的分支

checkout 切換到指定的分支

git checkout $BRANCH
  • 切換到指定的分支
git checkout -b $BRANCH
  • 建立新分支並同時切換至該新分支

merge 合併分支

git merge $BRANCH
  • 將一個分支的變更合併到當前分支

pull 拉取遠程分支的變更

git pull origin $BRANCH
  • 從遠程儲存庫拉取指定分支的變更
git pull --rebase
  • 當要 push 發現上面已經有新的 commit 時,可用以下指令
  • 可能會有 conflict (檔案衝突),與對方確認哪些需保留,Local 解完衝突後,便能 git push

push 推送本地分支的變更到遠程儲存庫

git push origin $BRANCH
  • 將本地分支的變更推送到遠程儲存

remote 查看遠程倉庫的信息

git remote -v
  • 顯示與本地 Git 存儲庫關聯的遠程存儲庫的詳細信息,包括名稱和 UR

Stash 切到不同 branch 處理

git stash save -u "輸入要儲存的名稱,可寫中文"
  • 將手中的事情先藏起來 (非存到 add 或 commit 喔)
git stash list
  • 列出目前已儲存的 stash
git stash apply stash@{0}
  • 將 stash 中的 stash@0 抓下來,且不刪除 stash@0
git stash pop stash@{0}
  • 將 stash 中的 stash@0 抓下來,同時刪除 stash@0
git stash drop stash@{0
  • 刪除 stash 中的 stash@0

reset 恢復 commit 指令

git reset HEAD