Git常用經驗

奋然發表於2024-10-16

Git

顯示單次commit的改動內容
git show commit-id
git show HEAD~
什麼都不帶的時候預設顯示最近的一次
git show

patch相關

  • 生成patch
    git format-patch HEAD^
  • 應用patch,保留commit資訊
    git am file
  • 打patch,但是不保留commit資訊
    git apply file

git log特定搜尋

  • 搜尋特定的作者
    git log --author name
  • 搜尋特定的title
    git log --grep title
    *只檢視和某個檔案相關的git log
    git log filename

git stash的用法

詳見git-stash用法小結
常見情景:在git pull的時候提示有本地未儲存的修改,此時開發到一半不想要提交也不想刪除的時候
git stash 把所有未提交的修改(包括暫存的和非暫存的)都儲存起來,用於後續恢復當前工作目錄
git stash list 檢視現有的stash目錄
git stash pop 應用之前快取的最近一個記錄
謹慎使用
git stash drop <stash@{0}> 刪除某一個指定的stash
git stash clear刪除所有快取的stash

github fork 出的倉庫怎樣與原倉庫保持一致

  1. git remote -v 檢視遠端庫地址;

  2. git remote add upstream XXXXXXXXXXXXXXX.git //upstream 設定原倉庫的名字,後面是原倉庫的地址;

  3. git fetch upstream //抓取原倉庫的修改檔案

  4. git checkout XXX // 切換到需要合併的本地倉庫的本地分支。

  5. git merge upstream/dev //將原倉庫的Dev 分支與本地倉庫的當前分支合併

  6. git push origin XXX_branch //將當前倉庫的本地分支推送到遠端分支

git 如何修改已經提交到repo的commit

利用互動式rebase

  1. git rebas1. e -i HEAD~N //N是你要修改的倒數第幾次commit

  2. 修改開啟的文件,類似於這樣

    pick abcdef1 Commit message 1
    pick abcdef2 Commit message 2
    pick abcdef3 Commit message 3

    如果只修改commit message, 將對應的pick改成reword,如果要修改code將pick改為edit

  3. 儲存修改

  4. git rebase --continue

  5. git push origin branch-name -f //強制推送,注意要非常小心!

相關文章