面試備戰出征之git分布版本控制 (一)
官網文件
git標籤
git別名
git分支
給歷史中的某乙個提交打上標籤,以示重要
檢視標籤
git tag
正規表示式查詢git tag -l '*v1'
檢視標籤資訊git show tagname
建立標籤對當前的提交打上標籤輕量標籤
git tag tagname
[不需要引數選項指定]
附註標籤
git tag -a v1.0 -m "message"
對過去的提交打上標籤git tag -a tagname 提交的校驗碼
校驗碼很長,一般只需要寫前五六位字母就可以,基本是唯一的,git可以準確識別到該次提交是哪乙個提交
推送標籤到遠端git倉庫因為git push
不會推送標籤,你需要新的命令
git push origin tagname
[推送單個標籤]
git push origin --tags
[推送全部標籤到伺服器]
刪除本地標籤
git tag -d tagname
git push origin :refs/tags/tagname
更新遠端倉庫標籤刪除
檢出標籤
git checkout tagname
若檢出的標籤處於分離頭指標狀態detached head
,則對標籤下的內容做更改,再次提交的資料不屬於任何分支 《提交無效,需要另外建立分支》編寫配置檔案
git config --global alias. ci commit
使用git ci
git config --global alias. unstage 'reset head --'
取消別名使用
git的提交物件
作者姓名,郵箱
提交輸入的提示資訊
指向父物件的指標 [首次提交沒有父物件,很容易理解啊]
git倉庫的五個物件
三個blob物件 [儲存檔案快照]
乙個樹物件 [記錄目錄結構和blob物件索引]
乙個提交物件 [包含樹物件指標和所有提交資訊]
建立分支
git branch newbranch
git checkout -b branchname
建立乙個分支,並切換到該分支上面
head特殊指標,指向當前所在的本地分支
分支切換
git checkout branchname
分支切換,git會重置工作目錄
分支切換會改變工作目錄的內容,git會把該分支上最後乙個提交快照給予當前的工作目錄
git commit
提交之後當前分支自動向前移動
分支合併
git merge branchname
衝突解決,必須選擇由*****
分割的上部分內容或者下部分內容
git mergetool
視覺化合併工具
檢視當前分支列表
git branch
帶有*星號表示當前所處的分支
git bracnh -v
檢視每乙個分支的最後一次提交
git branch --merged
檢視已經合併了的分支
git branch --no-merged
檢視沒有合併的分支
分支管理
長期分支
保留完全穩定的**
特性分支 [短期分支]
實現單一的功能所需
緊急修復
遠端分支
git ls-remote origin
顯示遠端分支的完整列表
遠端跟蹤分支
是遠端分支狀態的引用
不能外部移動的本地分支 《有網路操作時候會自己移動》
git fetch origin
同步遠端伺服器資料到本地 [就是抓取本地沒有的遠端伺服器資料]
變基回顧,git merge
的三方合併
分別合併的兩個分支
乙個兩者最近的公共祖先
git rebase origin
將某乙個分支上的修改移到另乙個分支上
基變的原理
先找出兩個分支的最近公共祖先
對比當前分支和最近公共祖先的提交歷史
提取修改的補丁作為臨時檔案
當前分支指標轉移到合併資料的分支上
把臨時檔案一次應用
GIT分布式版本控制
git config global user.name your name git config global user.email email example.com git init初始化建立版本庫 git clone url從網路上轉殖repository,注意clone是複製了history...
Git(分布式版本控制)
git 分布式版本控制 git伺服器端 root web1 yum install y git 安裝git root web1 mkdir var git root web1 git init var git project bare 建立乙個空的git倉庫 初始化空的 git 版本庫於 var g...
分布式版本控制 Git(二)
分支在實際中有什麼用呢?假設你準備開發乙個新功能,但是需要兩周才能完成,第一周你寫了50 的 如果立刻提交,由於 還沒寫完,不完整的 庫會導致別人不能幹活了。如果等 全部寫完再一次提交,又存在丟失每天進度的巨大風險。現在有了分支,就不用怕了。你建立了乙個屬於你自己的分支,別人看不到,還繼續在原來的分...