現在的大多數公司都在使用git
作為版本控制系統,相比於其它版本控制系統如svn
來說,git
有很多優點:
分布式分布式意味著協作開發的每個小夥伴計算機中的倉庫都是乙份完整的專案**,大家不依賴於某個**倉庫,減少**伺服器出問題帶來的風險。
離線工作
不必連線**倉庫便可很好地工作,在本地完成暫存,提交及分支建立合併。
版本的前進後退
通過git可以很好地實現版本的前進後退,並且基本上的版本都能在日誌中找到,而不會真正的刪除,以便於隨時切換。
暫存區:git add 後的儲存空間
版本庫:git commit 後的版本空間(網上有說版本庫包含了暫存區,這點我沒有細糾)
強烈建議慎用 git clean,寫這篇部落格的時候的不小心使用導致以前的部落格都刪了
狀態檢視
git status // 檢視工作區修改及暫存區狀態
git log // 檢視歷史版本
git log --stat // 檢視歷史版本並顯示差異檔案
git diff // 比較工作區與暫存區差異(忽略untracked檔案)
git diff --stat // 顯示工作區與暫存區差異檔案
git diff // 比較工作區與指定版本的差異
git diff // 比較兩個版本的差異
git reflog // 檢視版本變動歷史(僅指在本地操作),包括了版本切換切換(前進後退),分支切換(分支即版本)
儲存提交git stash // 儲存工作區和暫存區狀態,使工作區和暫存區乾淨
git stash pop // 恢復工作區和暫存區狀態,git stash / git stash pop 將當前狀態儲存在陣列中,對應陣列的 push pop,所以可以連續 stash/ stash pop
git add ./-a/--all // 工作區 -> 暫存區
git commit -m // 暫存區 -> 當前分支
git commit --amend // 暫存區 -> 當前分支 不新增新版本
拉取推送git fetch // 同步遠端倉庫
git merge
// 合併分支
git pull
// git fetch + git merge 拉取並合併遠端分支
git push
// 推送分支
git push :// 推送並新建遠端分支
git push --set-upstream
// 推送並建立關聯
git checkout -b // 從遠端拉取並建立新分支
換分支git checkout // 切換分支
變基git rebase
// 改變相聯絡的祖先commitid,可以達到簡潔提交圖譜的作用
撤銷回退git checkout // 清空工作區,不能清除untracked檔案
git reset // 暫存區 -> 工作區
git clean -n // 顯示將被清除的檔案
git clean -f // 清除當前目錄下untracked檔案,沒有則clean全部,非ignore
git clean -df // 清除當前目錄下untracked檔案/資料夾,沒有則clean全部,非ignore
git clean -xf // 清除當前目錄下untracked檔案/資料夾,沒有則clean全部,無視是否ignore
git reset commitid --mixed(預設) // 回退到某個版本,保留工作區狀態,將暫存區修改退回工作區 && 上乙個commit修改移入工作區
git reset commitid --hard // 回退到某個版本,清空工作區和暫存區
git reset commitid --soft // 回退到某個版本,保留工作區和暫存區 && 上乙個commit修改移入工作區
遠端git remote // 顯示所有遠端倉庫
git remote -v/--verbose // 顯示所有遠端倉庫及位址
git remote add // 新增遠端倉庫
git remote rm // 刪除遠端倉庫
想看看當前修改了哪些檔案?
git status // 注意區分工作區,暫存區,untracked
更新部分檔案,有些已經add
到暫存區,有些還在工作區,想撤銷所有修改?
git reset head --hard // 撤銷工作區和暫存區的所有修改
git clean . -df // 如果有新新增的檔案/資料夾(untracked狀態),則再執行此條命令刪除
更新部分檔案,有些已經add
到暫存區,有些還在工作區,想撤銷部分修改?
git reset // 暫存區 -> 工作區
git checkout // 撤銷未新增到工作區的修改
git clean -df // 如果有新新增的檔案/資料夾(untracked狀態),則再執行此條命令刪除
想回退至某個歷史版本?
git log // 檢視想回退的版本id
git reset --hard // 回退(hard可獲得乾淨的工作區和暫存區)
想前進至某個版本,比如回退版本之後又想再回到新版本?
git reflog // 版本記錄中可以看到之前版本
git reset --hard // 回退(hard可獲得乾淨的工作區和暫存區)
更新當前分支?
git fetch // 獲取所有遠端分支的最新狀態(只是更新本地的遠端分支狀態,這樣你就可以知道遠端是否有修改,是否需要更新本地倉庫)
git fetch
// 獲取某一遠端分支的最新狀態
git merge
// 合併遠端分支**
git pull // 等於前面兩條操作,更新當前分支對應的遠端分支並合併至當前分支
檢視當前工作區的具體修改(和暫存區比較)?
git diff // 所有修改(非untracked檔案)
git diff // 某檔案的修改
拒絕背鍋之是誰改的**?(開發工具上推薦git blame 外掛程式
)
git blame // 檢視某個檔案的每行修改資訊(commitid,user, date)
git blame -l // 檢視某個檔案的某段修改資訊(commitid,user, date)
好奇之某個版本的修改?
git log // 先獲取想要看的版本id
git show // 顯示版本具體修改
git show --stat // 只顯示版本修改的檔案,不顯示修改細節
好奇之檔案的版本歷史?
git log -p // 顯示每次版本差異(相當於多個git show)
git log --stat // 顯示每次版本差異統計(相當於多個git show --stat)
git log -p // 某檔案的修改歷史資訊
git log --stat // 某檔案的修改歷史資訊統計
儲存當前分支修改,在當前分支進行其他緊急開發任務?
git stash // 將當前所有工作區和暫存區修改快取(非untracked如果也要快取,可先新增到暫存區再快取)
git stash pop // 恢復快取修改
以上就是我們經常使用到的一些簡單的命令,在這裡梳理也是方便自己後面遺忘時候查閱,後面如果有自己比較多使用的將更新。
歡迎來前端學習打卡群一起學習~516913974
常用命令 Git 常用命令大全
安裝教程可參照 廖雪峰老師的安裝教程。git config 在git中,使用git config 命令來配置 git 的配置檔案,git配置級別主要有3類 1 倉庫級別 local 本地 git 倉庫級別配置檔案,作用於當前倉庫。優先順序最高 2 使用者級別 global,全域性配置檔案,作用於所有...
git 常用命令
檢視是否存在檔案需要上傳 git status git add git commit m 建立遠端倉庫 git remote add origin 116.255.146.153 ruby cd work daily project.git 更新git fetch 116.255.146.153 r...
git常用命令
詳細 1,git log p 命令來顯示每一次提交與其父節點提交內容之間快照的差異。2,為了檢視載入 staged 而並未提交 not committed 的內容差異,可以使用 git diff stage 命令 在git 1.6之前的版本中,使用 cached 適應情形 在執行git commit...