面試備戰出征之Git分布版本控制 二

2021-10-02 15:11:18 字數 2506 閱讀 4717

面試備戰出征之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 tagnamegit push origin :refs/tags/tagname更新遠端倉庫標籤刪除

檢出標籤

git checkout tagname若檢出的標籤處於分離頭指標狀態detached head,則對標籤下的內容做更改,再次提交的資料不屬於任何分支 《提交無效,需要另外建立分支》編寫配置檔案

git config --global alias. ci commit使用git cigit 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 的 如果立刻提交,由於 還沒寫完,不完整的 庫會導致別人不能幹活了。如果等 全部寫完再一次提交,又存在丟失每天進度的巨大風險。現在有了分支,就不用怕了。你建立了乙個屬於你自己的分支,別人看不到,還繼續在原來的分...