目錄php
一、git是什麼python
二、git怎麼工做的git
三、git經常使用命令github
四、git提效工具緩存
五、git的技術用語服務器
一、git是什麼框架
git是開源的分佈式的版本控制系統,能夠有效、高速地處理的項目版本管理。
git中存儲是變動信息,而不是整個文件。ssh
總結git的兩大特色:分佈式
版本控制:能夠解決多人同時開發的代碼問題,也能夠解決單人開發時找回歷史代碼的問題。
分佈式:多臺機器互爲備份,同一個Git倉庫,能夠分佈到不一樣的機器上。能夠本身搭建這臺服務器,也可使用GitHub網站、gitee網站(屬於osChina)、coding網站。
二、git怎麼工做的工具
git的工做原理如圖所示
三、git經常使用命令
命令和操做大全
部署git和git經常使用命令
一、建立公鑰(3次Enter)
錯誤處理
eval "$(ssh-agent -s)"
ssh-add
二、克隆
三、查看全部分支
git branch
四、建立dev分支(建立分支會克隆當前分支的開發進度和狀態)
git branch dev
五、刪除分支(刪除分支前,先切換到其餘分支)
git checkout itcast1
git branch -d itcast22
六、將本地的當前分支推送到遠程
git push origin dev
七、跟蹤分支
做用是:使得本地的dev被用於跟蹤(就是和遠程的dev對比)
執行本命令前,須要向執行6,即把本地dev推送到遠端dev
git branch --set-upstream-to=origin/dev dev
八、建立並切換到新分支
git checkout -b itcast1
小結:
(1)檢查當前分支和遠程分支的版本提交落後關係。
git checkout
(2)切換到分支itcast2
git checkout itcast2
(3)建立並切換到新分支
git checkout -b itcast1
九、將遠程dev分支同步到本地(本地不須要本身新建dev2分支)
git checkout -b dev2 origin/dev
將遠程itcast1同步到本地(本地不須要本身新建itcast1分支)
git checkout -b itcast1 origin/itcast1
十、被跟蹤的dev還能夠用pull同步到本地(先本地新建dev分支)
git checkout -b dev
git pull
本地已經有dev分支和項目文件時,同步到本地的命令過程:
git checkout dev
git pull origin dev
git reflog
git reset 10e2148
git checkout -- .
十一、查看工做區、緩衝區的被修改但還未提交(git commit)的文件
git status
或者(簡要輸出)
git status -s
十二、添加到緩衝區(完成一個文件,git add 一下)
git add .
1三、提交到本地版本庫(完成一個業務邏輯,git commit一下)
git commit -m '部署框架'
若是沒有新建的文件。能夠不單獨add,一次性提交:-a -m
git commit -a -m "Changed some files"
千萬注意,-a不會形成新文件被提交,只能修改。
1四、將本地版本庫推送到遠程服務器(服務器至關於U盤)
就是將本地分支推送到服務器
git push origin itcast1
1五、將分支itcast1合併到公共分支dev
git checkout dev
git merge itcast1
git push origin dev
常見的合併過程
(1)合併分支(第一我的的合併):
git status
git checkout dev
git merge itcast1
git push origin dev
(2)第二我的開始合併分支前,須要先下載第一我的合併分支後,推到遠程的dev分支
git checkout dev
git pull
git merge itcast2
(3)這步後,若是產生衝突,找寫代碼的人商量,決定怎麼刪留改。
處理bug,最好創建一個bug001分支(從須要改bug的分支,建立並切換到bug001分支)
git checkout dev
git checkout -b bug001
(4)修改處理bug,併合並,推送
1)在分支bug001下,改好後:提交本地
git add ./
git commit -m '解決衝突01'
2)並開始合併分支
git checkout dev
git pull
git merge --no-ff -m '解決衝突01' bug001
說明:
合併分支默認是引用合併(fast-forward),若是是把分支bug001合併到分支dev,就須要深拷貝合併(no-ff)。不然,刪除bug001後就沒辦法引用了。
3)刪除分支bug001
git branch -d bug001
4)推送分支dev到服務器
git push origin dev
(5)小技巧:將合併好的dev版本再合併給itcast2,推送到服務器
git checkout itcast2
git merge dev
git push origin itcast2
1六、查看日誌(歷史記錄)
(1)完整的日誌(commit後,而且push的記錄)
git log(宏觀。更適合克隆後,查看本地的遠程項目的提交記錄)
(2)簡介版日誌(只有本地commit後的記錄,能夠看到版本號)
git reflog(微觀。更適合本地,強烈推薦)
1七、日誌的2個做用
(1)對比兩個版本的差別:git diff
1)比較最近(當前已commit)版本和工做區的差別
git diff HEAD -- ttsx/ttsx/urls.py
2)對比最近版本和上一次版本的差別
git diff HEAD HEAD^ -- ttsx/ttsx/urls.py
3)對比上一次版本和最近版本的差別
git diff HEAD^ HEAD -- ttsx/ttsx/urls.py
4)對比兩個版本的差異(HEAD表示最近提交的版本,7c56139另外一個版本)
git diff HEAD 7c56139 -- ttsx/ttsx/urls.py
拓展:
一、查看工做區的變更
還沒有緩存的改動:
git diff
二、查看緩衝區的變更
查看已緩存的改動:
git diff --cached
三、查看工做區、緩衝區的變更(至關於git status)
查看已緩存的與未緩存的全部改動:
git diff HEAD
四、顯示變更摘要
顯示摘要而非整個
git diff --stat
小結:git status(強烈推薦git status)、git diff
git status 顯示新建、修改、刪除,
git diff 只顯示修改,一行一行地顯示這些改動具體是啥。
(2)回退到之前版本:git reset 8042a87
git reflog
git reset 8042a87
git status
git checkout -- ttsx/ttsx/urls.py
1八、歷史版本,從倉庫恢復到暫存區
git reset HEAD(或者版本號8042a87)
從暫存區恢復到工做區
git checkout -- 文件名
1九、保存現場(不想提交修改,可是必須切換到其它分支去解決bug時用)
git stash
20、恢復現場(bug修復後,回到之前的分支,並恢復現場)
git checkout itcast1
git stash pop
2一、配置
查看git全部配置信息
git config --list
或者:查看某一個變量的值,
git config user.name
拓展:
配置用戶信息,Ubuntu家目錄python文件夾下
vi .gitconfig
2二、git rm
git rm 會將條目從緩存區中移除。這與 git reset HEAD 將條目取消緩存是有區別的。 "取消緩存"的意思就是將緩存區恢復爲咱們作出修改以前的樣子。
默認狀況下,git rm file 會將文件從緩存區和你的硬盤中(工做目錄)刪除。
若是你要在工做目錄中留着該文件,可使用 git rm --cached:
如咱們刪除 hello.php文件:
git rm hello.php
不從工做區中刪除文件:
git rm --cached README
四、git提效工具
git有一個實用的圖像管理工具sourcetree。
圖形操做,代碼差別、分支狀況、文件增刪,直觀易懂。
五、git的技術用語
(1)分支
各自的分支:一個開發人員一個分支,互不衝突。一個分支至關於一輛車的專屬跑道。
dev公共分支:成員合併的分支,用於階段性合併代碼。
master主分支:發佈版本的分支。
(2)工做區、版本庫、服務器
工做區、版本庫(包括暫存區和倉庫區)、服務器(如:github、gitee、自搭建)
1)工做區:本地全部文件(除了.git)
2)版本庫:.git
3)服務器:至關於共用U盤
查看工做區改動,git diff
查看暫存區改動,git diff --cached