大家好,我是若川。最近組織了源碼共讀活動,感興趣的可以點此加我微信 ruochuan12?參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》?包含20余篇源碼文章。
雖然你可能用圖形化工具比較多,但基本的git命令還是需要熟悉的。今天分享常用git命令。
項目前的git配置
檢查git版本
git?--version
查看git相關命令
git?--help
查看當前的git配置信息
git?config?--list
查看git用戶名
git?config?user.name-查詢?前git所使?的使?者名稱
git?config?--global?user.name?名稱注:?--global 表示全局,?沒有--global表示只設置在當前項目中的配置
查看git郵箱
git?config?user.email
-查詢git所使?的email
git?config?--global?user.email
設置 (配置)全局郵箱
git?config?--global?user.email?"eamil@qq.com"
全局配置用戶名(設置git使?者名稱)
git?config?--global?user.name?"username"
git對項目中的代碼進行管理
初始化git儲存
git?init
需要提交的所有修改放到暫存區(Stage)
git?add?*??//將工作區所有修改添加到暫存區
git?add?.??//將工作區所有修改添加到暫存區
git?add?<file-name>?//將指定文件添加到暫存區
git?add?*.js??//提交所有.js格式文件
git?add?-f?<file-name>?//?強制添加?指定文件添加到暫存區
注:<file-name>指的是文件的名稱
恢復(后悔藥)
將暫存區的文件恢復到工作區
git?reset?<file-name>???????????//從暫存區恢復指定到工作區
git?reset?--?.??????????????????//從暫存區恢復所有文件到工作區
git?reset?--hard????????????????//?把暫存區的修改退回到工作區
查看工作區、暫存區的狀態
git?status
移除暫存區的修改
git?rm?--cached?<file-name>??//將本地暫存區的內容移除暫存區
將緩存區的文件,提交到本地倉庫(版本庫 )
git?commit?<file-name>?...?"相關的記錄信息"?//將緩存區的指定文件提交到本地倉庫
git?commit?-m?"相關的記錄信息"????????//將緩存區的所有文件提交到本地倉庫
git?commit?-am?'相關的記錄信息'???????//跳過暫存區域直接提交更新并且添加備注的記錄信息
git?commit?--amend?'相關的記錄信息'???//使用一次新的commit,替代上一次提交,如果代碼沒有任何新變化,則用來修改上一次commit的提交記錄信息
撤銷commit提交
git?revert?HEAD???//撤銷最近的一個提交(創建了一個撤銷上次提交(HEAD)的新提交)git?revert?HEAD^???//撤銷上上次的提交
查看日志
查看歷史提交(commit)記錄
git?log????//查看歷史commit記錄
注:空格向下翻頁,b向上翻頁,q退出
git?log?--oneline??//以簡潔的一行顯示,包含簡潔哈希索引值
git?log?--pretty=oneline?//查看日志且并且顯示版本
git?log?--stat?????//顯示每個commit中哪些文件被修改,分別添加或刪除了多少行
查看分支合并圖
git?log?--graph
查看版本線圖
git?log?--oneline?--graph
git版本控制(時光機)
回到指定哈希值對應的版本
git?reset?--hard?<Hash>
注:<Hash>?是版本的哈希值
git?reset?--hard?HEAD?????//強制工作區、暫存區、本地庫為當前HEAD指針所在的版本
版本回退
git?reset?--hard?HEAD~1??????????//后退一個版本
注:~后面的數字表示回退多少個版本
分支
查看分支
git?branch??????????????//查看所有本地分支
git?branch?-r??????????//查看所有遠程分支
git?branch?-a?????????//查看所有遠程分支和本地分支
git?branch?--merged??//查看已經合并的分支
創建分支(依然停留在當前的分支)
git?branch?<branch-name>
注:?<branch-name>?是分支的名稱
切換分支
git?checKout?<branch-name>????//切換到指定分支,并更新工作區
git?checkout?-?????????//切換到上一個分支
創建并切換分支(創建一個新的分支,并切換到這個新建的分支上)
git?chechout?-b?<branch-name>
合并分支(合并某一個分支到當前分支)
git?merge?<branch-name>
刪除分支
git?branch?-d?<branch-name>????//只能刪除已經被當前分支合并的分支
git?branch?-D?<>branch-name>???//強制刪除分支
刪除遠程分支
git?push?origin?--delete??<remote-branch-name>
注:<remote-branch-name>?遠程分支名
遠程倉庫(團隊協作)
克隆遠程倉庫(從遠程倉庫拉取代碼)
git?clone?<url>
注:<url>???遠程倉庫的地址
本地庫與遠程庫進行關聯
git?remote?add?origin?<url>
注:<url>???遠程倉庫的地址
查看遠程倉庫地址別名
git?remote?-v
新建遠程倉庫地址別名
git?remote?add?<alias>?<url>
注:<alias>?遠程倉庫的別名<url>???遠程倉庫的地址
刪除本地倉庫中的遠程倉庫別名
git?remote?rm?<alias>
注:<alias>?遠程倉庫的別名
重命名遠程倉庫地址別名
git?remote?rename?<old-alias>?<new-alias>注:<old-alias>??舊的遠程倉庫<new-alias>??新的遠程倉庫
把遠程庫的修改拉取到本地
git?fetch?<alias/url>?<remote-branch-name>?????//抓取遠程倉庫的指定分支到本地,但沒有合并
git?merge?<alias-branch-name>????????????????//將抓取下來的遠程的分支,跟當前所在分支進行合并
git?pull?<alias/url>?<remote-branch-name>????//拉取到本地,并且與當前所在的分支進行合并注:<alias/url>?遠程倉庫的別名?或者是?遠程倉庫地址<remote-branch-name>?遠程分支名
將本地的分支推送到遠程倉庫
提示!:在推送前要先拉取哦 ?git pull
git?push?<alias/url>?<branch-name>?????//將本地的每個分支推送到遠程倉庫
git?push?<alias/url>?--force?????????????//強行推送?當前分支到遠程倉庫,即使有沖突
git?push?<alias/url>?--all??????????????//推送所有本地分支到遠程倉庫注:<alias/url>?遠程倉庫的別名?或者是?遠程倉庫地址<branch-name>??本地分支名
項目前的git配置
檢查git版本
git?--version
查看git相關命令
git?--help
查看當前的git配置信息
git?config?--list
查看git用戶名
git?config?user.name-查詢?前git所使?的使?者名稱
git?config?--global?user.name?名稱注:?--global 表示全局,?沒有--global表示只設置在當前項目中的配置
查看git郵箱
git?config?user.email
-查詢git所使?的email
git?config?--global?user.email
設置 (配置)全局郵箱
git?config?--global?user.email?"eamil@qq.com"
全局配置用戶名(設置git使?者名稱)
git?config?--global?user.name?"username"
git對項目中的代碼進行管理
初始化git儲存
git?init
需要提交的所有修改放到暫存區(Stage)
git?add?*??//將工作區所有修改添加到暫存區
git?add?.??//將工作區所有修改添加到暫存區
git?add?<file-name>?//將指定文件添加到暫存區
git?add?*.js??//提交所有.js格式文件
git?add?-f?<file-name>?//?強制添加?指定文件添加到暫存區
注:<file-name>指的是文件的名稱
恢復(后悔藥)
將暫存區的文件恢復到工作區
git?reset?<file-name>???????????//從暫存區恢復指定到工作區
git?reset?--?.??????????????????//從暫存區恢復所有文件到工作區
git?reset?--hard????????????????//?把暫存區的修改退回到工作區
查看工作區、暫存區的狀態
git?status
移除暫存區的修改
git?rm?--cached?<file-name>??//將本地暫存區的內容移除暫存區
將緩存區的文件,提交到本地倉庫(版本庫 )
git?commit?<file-name>?...?"相關的記錄信息"?//將緩存區的指定文件提交到本地倉庫
git?commit?-m?"相關的記錄信息"????????//將緩存區的所有文件提交到本地倉庫
git?commit?-am?'相關的記錄信息'???????//跳過暫存區域直接提交更新并且添加備注的記錄信息
git?commit?--amend?'相關的記錄信息'???//使用一次新的commit,替代上一次提交,如果代碼沒有任何新變化,則用來修改上一次commit的提交記錄信息
撤銷commit提交
git?revert?HEAD???//撤銷最近的一個提交(創建了一個撤銷上次提交(HEAD)的新提交)git?revert?HEAD^???//撤銷上上次的提交
查看日志
查看歷史提交(commit)記錄
git?log????//查看歷史commit記錄
注:空格向下翻頁,b向上翻頁,q退出
git?log?--oneline??//以簡潔的一行顯示,包含簡潔哈希索引值
git?log?--pretty=oneline?//查看日志且并且顯示版本
git?log?--stat?????//顯示每個commit中哪些文件被修改,分別添加或刪除了多少行
查看分支合并圖
git?log?--graph
查看版本線圖
git?log?--oneline?--graph
git版本控制(時光機)
回到指定哈希值對應的版本
git?reset?--hard?<Hash>
注:<Hash>?是版本的哈希值
git?reset?--hard?HEAD?????//強制工作區、暫存區、本地庫為當前HEAD指針所在的版本
版本回退
git?reset?--hard?HEAD~1??????????//后退一個版本
注:~后面的數字表示回退多少個版本
分支
查看分支
git?branch??????????????//查看所有本地分支
git?branch?-r??????????//查看所有遠程分支
git?branch?-a?????????//查看所有遠程分支和本地分支
git?branch?--merged??//查看已經合并的分支
創建分支(依然停留在當前的分支)
git?branch?<branch-name>
注:?<branch-name>?是分支的名稱
切換分支
git?checKout?<branch-name>????//切換到指定分支,并更新工作區
git?checkout?-?????????//切換到上一個分支
創建并切換分支(創建一個新的分支,并切換到這個新建的分支上)
git?chechout?-b?<branch-name>
合并分支(合并某一個分支到當前分支)
git?merge?<branch-name>
刪除分支
git?branch?-d?<branch-name>????//只能刪除已經被當前分支合并的分支
git?branch?-D?<>branch-name>???//強制刪除分支
刪除遠程分支
git?push?origin?--delete??<remote-branch-name>
注:<remote-branch-name>?遠程分支名
遠程倉庫(團隊協作)
克隆遠程倉庫(從遠程倉庫拉取代碼)
git?clone?<url>
注:<url>???遠程倉庫的地址
本地庫與遠程庫進行關聯
git?remote?add?origin?<url>
注:<url>???遠程倉庫的地址
查看遠程倉庫地址別名
git?remote?-v
新建遠程倉庫地址別名
git?remote?add?<alias>?<url>
注:<alias>?遠程倉庫的別名<url>???遠程倉庫的地址
刪除本地倉庫中的遠程倉庫別名
git?remote?rm?<alias>
注:<alias>?遠程倉庫的別名
重命名遠程倉庫地址別名
git?remote?rename?<old-alias>?<new-alias>注:<old-alias>??舊的遠程倉庫<new-alias>??新的遠程倉庫
把遠程庫的修改拉取到本地
git?fetch?<alias/url>?<remote-branch-name>?????//抓取遠程倉庫的指定分支到本地,但沒有合并
git?merge?<alias-branch-name>????????????????//將抓取下來的遠程的分支,跟當前所在分支進行合并
git?pull?<alias/url>?<remote-branch-name>????//拉取到本地,并且與當前所在的分支進行合并注:<alias/url>?遠程倉庫的別名?或者是?遠程倉庫地址<remote-branch-name>?遠程分支名
將本地的分支推送到遠程倉庫
提示!:在推送前要先拉取哦 ?git pull
git?push?<alias/url>?<branch-name>?????//將本地的每個分支推送到遠程倉庫
git?push?<alias/url>?--force?????????????//強行推送?當前分支到遠程倉庫,即使有沖突
git?push?<alias/url>?--all??????????????//推送所有本地分支到遠程倉庫注:<alias/url>?遠程倉庫的別名?或者是?遠程倉庫地址<branch-name>??本地分支名
·················?若川簡介?·················
你好,我是若川,畢業于江西高校。現在是一名前端開發“工程師”。寫有《學習源碼整體架構系列》10余篇,在知乎、掘金收獲超百萬閱讀。
從2014年起,每年都會寫一篇年度總結,已經寫了7篇,點擊查看年度總結。
同時,最近組織了源碼共讀活動,幫助1000+前端人學會看源碼。公眾號愿景:幫助5年內前端人走向前列。
識別上方二維碼加我微信、拉你進源碼共讀群
今日話題
略。分享、收藏、點贊、在看我的文章就是對我最大的支持~