Git 常用命令彙總

2022-03-28 19:38:18 字數 3658 閱讀 4848

目錄可理解為:倉庫 = 版本庫 + 工作區。版本庫即 .git 資料夾內容,版本庫以外的都是工作區內容。

config:配置資訊;

hooks/:鉤子 shell 指令碼;

logs/:操作日誌;

objects/:git 物件;

refs:引用;

本地倉庫與遠端倉庫的關聯:

建立本地倉庫:mkdir proj & cd proj & git init

新增遠端倉庫關聯:git remote add origin [email protected]:linvanda/cache2go.git

可以新增多個遠端倉庫關聯,再加乙個:git remote add other [email protected]:linvanda/cache2go-other.git,操作時可指定倉庫,如git push other將推送到 other 倉庫;

遠端倉庫源的一些操作:

git fetch:將遠端倉庫分支 fetch 到本地的遠端倉庫快照中;

git checkout branch-name:自動基於origin/branch-name快照建立本地分支並切換到該分支;

git checkout master:切換到 master 分支;

git pull --rebase:更新 master 分支到最新版本;

git checkout -b branch-name:基於 master 建立開發分支;

git add . & git commit -m "commit reason",開發並提交修改;

git push -u origin branch-name:將該分支推送到遠端並在兩者之間建立關聯(這樣後面就可以直接執行git push推送分支);

合併分支的最佳實踐(以將 feature-order 開發分支合併到 test 測試分支為例):

git checkout feature-order,進入 feature-order 分支;

git pull --rebase,同步當前分支到最新版本;

git checkout test,進入 test 分支;

git pull --rebase,同步 test 分支到最新版本;

git merge --no-ff feature-order,將 feature-order 合併到 test 分支;

git push,推到遠端;

注:有時我們在本地開發時會經常地 commit,但又不想將這些瑣碎的 commit 提交到遠端倉庫,則可以將它們合併提交。合併本地多次 commit 為一條 commit:

1.git rebase -i head~4

2. 彈出文字,將第二行開始的pick改為s(或squash)

3. 儲存,退出

4. 推到遠端:git push -f

檢視某個檔案每行的修改歷史,一般在需要對某個檔案做詳細變化追蹤時用到:

git blame filename

git log --graph --pretty=format:'%cred%h%creset -%c(yellow)%d%creset %s %cgreen(%cr) %c(bold blue)<%an>%creset' --abbrev-commit --date=relative

可設定別名:

git config --global alias.lg "log --graph --pretty=format:'%cred%h%creset -%c(yellow)%d%creset %s %cgreen(%cr) %c(bold blue)<%an>%creset' --abbrev-commit --date=relative」

刪除未跟蹤(未納入到版本管理)的檔案:

將乙個分支的某個 commit 的改動應用到另乙個分支。

如在分支 a 做了些修改並提交後,想把這些修改應用到分支 b,但又不能直接 merge a 到 b,又不想手動 copy,此時可以用 cherry-pick:

切換到分支 b:git checkout b

將 a 的某個 commit 應用到 b:git cherry-pick commitid-from-a

檢視合併提交詳情:git show mergecommitid,會有如下一行:merge: 022ff6f b2cd947,其中022ff6f和 b2cd947分別是兩個分支合併前最近提交的commitid。

撤銷合併時用-m指定需要以誰為準(主幹mainline):

git revert -m 1 mergecommitid,這樣就回退到 022ff6f身上(丟棄掉被合併分支的一系列提交)。

撤銷合併前用git log —graph能很清晰的看出分支合併關係以及將要撤銷掉的提交系列。

一般情況下,我們都是錯誤合併後需要撤銷到合併之前的狀態,因而一般都是git revert -m 1 …

git branch -d branch-name

git push origin :branch_name

git push --delete origin branch_name

git commit -am '…'

-a:add 將未暫存的檔案也提交(注意此方式不適用新建立的檔案,新建的檔案仍然要git add .)。

一種不錯的分支管理策略,我們公司就是基於 git flow 設計的分支管理策略。

介紹安裝:apt-get install git-flow

實際開發過程中,長時間不清理分支後,存在大量的開發分支,造成分支查詢困難,我們需要不定期清理不需要的分支。

有時候把 vendor、ide 配置檔案(如 .vscode 等)誤加到版本控制裡面了,需要移除掉。

很多時候其他人刪除了遠端分支,但我們自己電腦上還有一大堆 origin/... 這些「本地遠端分支」,可執行以下指令同步刪除:

git remote prune origin或者git pull -p

比如我們自己開發了乙個**庫,想同時推送到公司 gitlab 和自己的 github 倉庫。

新增新的源:git remote set-url --add --push origin

這樣 git push 的時候就會 push 到多個源。

有幾種配置策略:

git常用命令彙總

針對常用的git命令,進行彙總記錄,以便及時查詢 可以定乙個指令碼,檢查語法錯誤的,或是借用第三方工作進行檢查,然後將該指令碼放到專案的 git hook pre commit 位置,也可以放到乙個位置軟鏈到多個專案 git hook pre commit 中,這時,在提交時,會檢查語法規範,提高 ...

git常用命令彙總

git是由linux kernel創立者 linux torvalds 開發的 因為bitkeeper的問題 屬於dvcs 分布式版本控制 github 是乙個開源專案社群,始於2007 08上線 github 裡面的專案可以通過標準的 git 命令進行訪問和操作 pro git v2書本傳送門 而...

git 常用命令彙總

1 獲取git的版本 git version 2 初始化倉庫 git init 初始化乙個本地倉庫 git version 獲取git的版本 git config global user.name yourname git config global user.email youremail 第3 ...