首先我們來初步瞭解git的大概樣子,圖解
每一個項目,我們都把他變成一個git倉庫。
- 一個git倉庫包含無數分支,默認分支為master
- 每個分支都包含無數個版本庫
- 每個版本庫都包含無數個文件
注:具體包含關係看上圖哈,看這圖僅僅讓你知道git的樣子
然後就是git常用操作總結
使用Git差不多有一年了,命令行也用的越來越多,所以把工作中常用到的操作在這裡總結一下,以便更好的回顧與查詢。
$ git co(checkout) -b develop # → 創建開發分支develop
$ git push # → 推送當前分支(develop)到遠端倉庫
------------遵循小批量提交原則------------
$ git st(status) # → 查看當前分支工作區、暫存區的工作狀態
$ git diff # → diff文件的修改(⚠️很重要很重要很重要)
$ git ci(commit) . # → 提交本次修改
------------以上三步使用最頻繁-----------
$ git fetch --all # → 拉取所有遠端的最新代碼
$
git merge origin/develop # → 如果是多人協作,merge同事的修改到當前分支(先人後己原則)$ git merge origin/master # → 上線之前保證當前分支不落後於遠端origin/master,一定要merge遠端origin/master到當前分支
$ git push # → 推送當前分支到遠端倉庫
$ git merge --no-ff origin/develop # → 同事review code之後管理員合併origin/develop到遠端主幹origin/master
--------分--------割--------線--------
HEAD:當前commit引用
$ git version # → git版本
$ git branch # → 查看本地所有的分支
$ git branch -r # → 查看所有遠程的分支
$ git branch -a # → 查看所有遠程分支和本地分支
$ git branch -d
$ git branch -m brancholdname branchnewname # → 重命名分支
$ git branch
$ git checkout
$ git checkout -b
$ git checkout -- xx/xx # → 回滾單個文件
$ git pull origin master:master # → 將遠程origin主機的master分支合併到當前master分支,冒號後面的部分表示當前本地所在的分支
$ git pull origin master --allow-unrelated-histories # → 允許合併兩個不同項目
$ git fetch --p # → 更新分支
$ git status # → 查看本地工作區、暫存區文件的修改狀態
$ git add xx # → 把xx文件添加到暫存區去
$ git commit -m ' ' # → 提交文件 -m 後面的是註釋(不建議使用)
$ git commit -am(-a -m) # → 提交所有的修改,等同於上兩步(不建議使用)
$ git commit ./xx # → 等同於git add ./xx + git commit(建議使用
查看
格式:git config [--local|--global|--system] -l
$ git config --local -l # → 查看倉庫級的config
$ git config --global -l # → 查看全局級的config
格式:git config [--local|--global|--system] -e
$ git config --local -e # → 編輯倉庫級的config
$ git config --global -e # → 編輯全局級的config
修改
格式:git config [--local|--global|--system] section.key value
$ git config --local push.default 'simple' # → 修改倉庫級的push.default的默認行為
$ git config --global push.default 'current' # → 修改全局級的push.default的默認行為
* 關於git default配置這裡
增加
格式: git config [--local|--global|--system] --add section.key value(默認是添加在local配置中)
$ git config --add cat.name songhw # → local配置寫入 cat.name = songhw
$ git config --local --add cat.name songhw # → 等同於上一步
$ git config --global --add cat.name lhammer # → global配置寫入 cat.name = lhammer
獲取
格式:git config [--local|--global|--system] --get section.key(默認是獲取local配置中內容)
$ git config --get cat.name # → 輸出songhw
$ git config --local --get cat.name # → 輸出結果同上一步
$ git config --global --get cat.name # → 輸出lhammer
刪除
格式:git config [--local|--global|--system] --unset section.key
$ git config --local --unset cat.name # → 刪除local配置中的cat.name = songhw
$ git config --global --unset cat.name # → 刪除local配置中的cat.name = lhammer
$ git rebase master # → 在當前分支對master執行rebase
$ git rebase -i 目標commit # → 修改歷史某一次提交
把需要修改的commit對應的操作指令從pick改為edit複製代碼
$ gitrebase --continue # → 接上一步修改完之後,繼續rebase
$ gitrebase --onto HEAD HEAD^1
$ git push origin
$ git revert HEAD # → 撤銷指定的commit()
閱讀更多 Java高併發框架 的文章