国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

廣州網(wǎng)站建設(shè)建設(shè)南寧seo網(wǎng)絡(luò)推廣

廣州網(wǎng)站建設(shè)建設(shè),南寧seo網(wǎng)絡(luò)推廣,自動(dòng)優(yōu)化網(wǎng)站建設(shè)咨詢,網(wǎng)站模板兼容手機(jī)端GIT版本控制和常用命令使用介紹 1. 版本控制1.1 歷史背景1.2 什么是版本控制1.3 常見版本控制工具1.4 版本控制的分類 2 Git介紹2.1 Git 工作流程2.2 基本概念2.3 文件的四種狀態(tài)2.4 忽略文件2.5 Git命令2.5.1 查看本地git配置命令2.5.2 遠(yuǎn)程庫信息查看命令2.5.3 分支交互命令2…

GIT版本控制和常用命令使用介紹

  • 1. 版本控制
    • 1.1 歷史背景
    • 1.2 什么是版本控制
    • 1.3 常見版本控制工具
    • 1.4 版本控制的分類
  • 2 Git介紹
    • 2.1 Git 工作流程
    • 2.2 基本概念
    • 2.3 文件的四種狀態(tài)
    • 2.4 忽略文件
    • 2.5 Git命令
      • 2.5.1 查看本地git配置命令
      • 2.5.2 遠(yuǎn)程庫信息查看命令
      • 2.5.3 分支交互命令
      • 2.5.4 標(biāo)簽常用命令
      • 2.5.5 暫存區(qū)命令
      • 2.5.6 查看提交歷史
      • 2.5.7 gitk

1. 版本控制

1.1 歷史背景

同生活中的許多偉大事物一樣,Git誕生于一個(gè)極富紛爭且大舉創(chuàng)新的年代。Linux內(nèi)核開源項(xiàng)目有著為數(shù)眾廣的參與者。

1991-2002年間, 絕大多數(shù)的Linux內(nèi)核維護(hù)工作都花在了提交補(bǔ)丁和保存歸檔的繁瑣事務(wù)上。

直到2002年,整個(gè)項(xiàng)目組開始啟用一個(gè)專有的分布式版本控制系統(tǒng)BitKeeper來管理和維護(hù)代碼。

但在2005年,開發(fā)BitKeeper的商業(yè)公司同Linux內(nèi)核開源社區(qū)的合作關(guān)系結(jié)束,他們收回了Linux內(nèi)核社區(qū)免費(fèi)使用BitKeeper的權(quán)力。這就迫使Linux開源社區(qū)(特別是Linux的締造者Linus Torvalds)基于使用BitKeeper時(shí)的經(jīng)驗(yàn)教訓(xùn),開發(fā)出自己的版本系統(tǒng),也就是后來的Git。

Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng),而且是是免費(fèi)的、開源的,最初Git是為輔助Linux內(nèi)核開發(fā)的,作為一種過渡方案來替代 BitKeeper。

1.2 什么是版本控制

版本控制(Revision control)是一種在開發(fā)的過程中用于管理我們對(duì)文件、目錄或工程等內(nèi)容的修改歷史,方便查看更改歷史記錄,備份以便恢復(fù)以前的版本的軟件工程技術(shù)。

  • 實(shí)現(xiàn)跨區(qū)域多人協(xié)同開發(fā)
  • 追蹤和記載一個(gè)或者多個(gè)文件的歷史記錄
  • 組織和保護(hù)你的源代碼和文檔
  • 統(tǒng)計(jì)工作量
  • 并行開發(fā)、提高開發(fā)效率
  • 跟蹤記錄整個(gè)軟件的開發(fā)過程
  • 減輕開發(fā)人員的負(fù)擔(dān),節(jié)省時(shí)間,同時(shí)降低人為錯(cuò)誤

簡單說就是用于管理多人協(xié)同開發(fā)項(xiàng)目的技術(shù)。沒有進(jìn)行版本控制或者版本控制本身缺乏正確的流程管理,在軟件開發(fā)過程中將會(huì)引入很多問題,如軟件代碼的一致性、軟件內(nèi)容的冗余、軟件過程的事物性、軟件開發(fā)過程中的并發(fā)性、軟件源代碼的安全性,以及軟件的整合等問題。

1.3 常見版本控制工具

主流的版本控制器有如下這些:

  • Git
  • SVN(Subversion)
  • CVS(Concurrent Versions System)
  • VSS(Micorosoft Visual SourceSafe)
  • TFS(Team Foundation Server)
  • Visual Studio Online

版本控制產(chǎn)品非常的多(Perforce、Rational ClearCase、RCS(GNU Revision Control System)、Serena Dimention、SVK、BitKeeper、Monotone、Bazaar、Mercurial、SourceGear Vault),現(xiàn)在影響力最大且使用最廣泛的是Git與SVN。

Git與SVN最主要的區(qū)別

SVN是集中式版本控制系統(tǒng),版本庫是集中放在中央服務(wù)器的。然而編寫代碼的時(shí)候,使用的是自己的電腦,所以首先要從中央服務(wù)器得到最新的版本,然后再編寫代碼。完成工作后,需要把自己編寫的代碼推送到中央服務(wù)器。集中式版本控制系統(tǒng)是必須聯(lián)網(wǎng)才能工作,對(duì)網(wǎng)絡(luò)帶寬要求較高。

Git是分布式版本控制系統(tǒng),沒有中央服務(wù)器,每個(gè)人的電腦就是一個(gè)完整的版本庫。編寫代碼的時(shí)候不需要聯(lián)網(wǎng)了,因?yàn)榘姹径荚谧约弘娔X上。協(xié)同的方法是這樣的:比如說自己在電腦上改了文件A,其他人也在電腦上改了文件A,這時(shí),你們兩之間只需把各自的修改推送給對(duì)方,就可以互相看到對(duì)方的修改了。

Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng)。

1.4 版本控制的分類

  1. 本地版本控制
    記錄文件每次的更新,可以對(duì)每個(gè)版本做一個(gè)快照,或是記錄補(bǔ)丁文件,適合個(gè)人用,如RCS。
    在這里插入圖片描述

  2. 集中版本控制
    所有的版本數(shù)據(jù)都保存在服務(wù)器上,協(xié)同開發(fā)者從服務(wù)器上同步更新或上傳自己的修改。
    在這里插入圖片描述
    所有的版本數(shù)據(jù)都存在服務(wù)器上,用戶的本地只有自己以前所同步的版本,如果不連網(wǎng)的話,用戶就看不到歷史版本,也無法切換版本驗(yàn)證問題,或在不同分支工作。而且,所有數(shù)據(jù)都保存在單一的服務(wù)器上,有很大的風(fēng)險(xiǎn)這個(gè)服務(wù)器會(huì)損壞,這樣就會(huì)丟失所有的數(shù)據(jù),當(dāng)然可以定期備份。代表產(chǎn)品:SVN、CVS、VSS。

  3. 分布式版本控制
    所有版本信息倉庫全部同步到本地的每個(gè)用戶,這樣就可以在本地查看所有版本歷史,可以離線在本地提交,只需在連網(wǎng)時(shí)push到相應(yīng)的服務(wù)器或其他用戶那里。由于每個(gè)用戶那里保存的都是所有的版本數(shù)據(jù),只要有一個(gè)用戶的設(shè)備沒有問題就可以恢復(fù)所有的數(shù)據(jù),但這增加了本地存儲(chǔ)空間的占用。

在這里插入圖片描述

2 Git介紹

2.1 Git 工作流程

一般工作流程如下:

  • 克隆 Git 資源作為工作目錄。
  • 在克隆的資源上添加或修改文件。
  • 如果其他人修改了,你可以更新資源。
  • 在提交前查看修改。
  • 提交修改。
  • 在修改完成后,如果發(fā)現(xiàn)錯(cuò)誤,可以撤回提交并再次修改并提交。
    在這里插入圖片描述
    可以概括為:
  1. 從遠(yuǎn)程倉庫中克隆Git資源作為本地倉庫,同時(shí)從本地倉庫中checkout代碼
  2. 提交代碼:提交到暫存區(qū)–>提交到本地倉庫–>代碼push到遠(yuǎn)程倉庫

在這里插入圖片描述

  1. 1本地倉庫中保存修改的各個(gè)歷史版本
  2. 代碼push到遠(yuǎn)程倉庫,因?yàn)樾枰蛨F(tuán)隊(duì)成員共享代碼

2.2 基本概念

  • 工作區(qū):workspace。就是你在電腦里能看到的目錄,平時(shí)存放項(xiàng)目代碼的地方。
  • 暫存區(qū):stage 或 index。用于臨時(shí)存放你的改動(dòng),事實(shí)上它只是一個(gè)文件,保存即將提交到文件列表的信息。一般存放在 .git 目錄下的 index 文件(.git/index)中,所以我們把暫存區(qū)有時(shí)也叫作索引(index)。
  • 本地倉庫:Repository。就是安全存放數(shù)據(jù)的位置,這里面有你提交所有的版本的數(shù)據(jù)。其中HEAD指向最新放入倉庫的版本。
  • 遠(yuǎn)程倉庫:Remote。托管代碼的服務(wù)器,可以簡單的認(rèn)為是你項(xiàng)目組的一臺(tái)電腦用于遠(yuǎn)程數(shù)據(jù)交換。

在這里插入圖片描述
在這里插入圖片描述

2.3 文件的四種狀態(tài)

版本控制就是對(duì)文件的版本控制,要對(duì)文件進(jìn)行修改、提交等操作,首先要知道文件當(dāng)前在什么狀態(tài),不然可能會(huì)提交了現(xiàn)在還不想提交的文件,或者要提交的文件沒提交上。

  • Untracked:未跟蹤。此文件在文件夾中,但沒有加入git庫,不參與版本控制,通過git add狀態(tài)變?yōu)镾taged。
    在這里插入圖片描述
  • Unmodify:文件已經(jīng)入庫,未修改,也就是版本庫中的文件快照內(nèi)容與文件夾中完全一致。這種類型的文件有兩種去處,如果它被修改,而變?yōu)镸odified。如果使用git rm 移出版本庫,則變成Untracked。
    在這里插入圖片描述
  • Modified:文件已修改,僅僅是修改,并沒有進(jìn)行其他的操作,這個(gè)文件也有兩個(gè)去處,通過git add 可進(jìn)入暫存staged狀態(tài)。使用git checkout 則丟棄修改過,返回到unmodify 狀態(tài),這個(gè)git checkout即從庫中取出文件,覆蓋當(dāng)前修改。
    在這里插入圖片描述
  • Staged:暫存狀態(tài)。執(zhí)行g(shù)it commit 則將修改同步到庫中,這時(shí)庫中的文件和本地文件又變?yōu)橐恢?#xff0c;文件為Unmodify 狀態(tài)。執(zhí)行g(shù)it reset HEAD filename 取消暫存,文件狀態(tài)為Modified。

在這里插入圖片描述

2.4 忽略文件

有時(shí)候我們不想把某些文件納入版本控制中,比如數(shù)據(jù)庫文件,臨時(shí)文件,設(shè)計(jì)文件等,在主目錄下建立"gitignore" 文件,此文件有如下規(guī)則:

  • 忽略文件中的空行或以#符號(hào)開始的行將會(huì)被忽略
  • 可以使用Linux通配符。例如:星號(hào)(*)代表任意多個(gè)字符,問號(hào)(?)代表一個(gè)字符,方括號(hào)([abc])代表可選字符范圍,大括號(hào)({string1,string2})代表可選的字符串等
  • 如果名稱的最前面有一個(gè)感嘆號(hào)(!),表示例外規(guī)則,將不被忽略
  • 如果名稱最前面是一個(gè)路徑分隔符(/),表示要忽略的文件在此目錄下
  • 如果名稱的最后面是一個(gè)路徑分隔符(/),表示要忽略的是此目錄下該名稱的子目錄
# 											為注釋
*.txt										忽略所有 .txt結(jié)尾的文件
!lib.txt									但lib.txt除外
/temp										僅忽略項(xiàng)目根目錄下的temp文件,不包括其他目錄
build/										忽略build/目錄下的所有文件
doc/*.txt									忽略 doc/notes/txt 但不包括doc/server.arch.txt

在這里插入圖片描述

2.5 Git命令

2.5.1 查看本地git配置命令

#查看全部config
git config -l
#查看系統(tǒng)config
git config --system --list	
#查看當(dāng)前用戶全局config
git config --global --list
#設(shè)置用戶名
git config --global user.name "[名稱]" 
#設(shè)置郵箱
git config --global user.email [郵箱] 

2.5.2 遠(yuǎn)程庫信息查看命令

#查看遠(yuǎn)程庫信息 
git remote
#遠(yuǎn)程庫詳細(xì)信息
git remote -v
#查看遠(yuǎn)程分支
git branch -rgit branch -a 
#為遠(yuǎn)程倉庫地址創(chuàng)建別名
git  remote add origin  https://github.com/sun766/Programming-art.git(此處舉例)
#查看當(dāng)前別名所對(duì)應(yīng)的遠(yuǎn)程倉庫地址
git  remote show origin
#從遠(yuǎn)程倉庫獲取代碼(拉取所有版本到本地)
git clone  origin
#刪除當(dāng)前別名所對(duì)應(yīng)的遠(yuǎn)程倉庫地址
git  remote remove origin

2.5.3 分支交互命令

#查看分支 (顯示結(jié)果中 有* 代表當(dāng)前所在分支)
git branch 
#創(chuàng)建分支
git branch 分支名稱
#建立本地分支和遠(yuǎn)程分支的關(guān)聯(lián)
git branch –set-upstream branch-name origin/branch-name 
#切換分支(工作區(qū)文件內(nèi)容會(huì)立即變化成對(duì)應(yīng)分支的內(nèi)容 )
git checkout 分支名稱
#創(chuàng)建+切換分支,git checkout -b dev,即origin/dev
git checkout -b 分支名稱
#更新
git pull
#將遠(yuǎn)程主機(jī) origin 的 master 分支拉取過來,與本地的 brantest 分支合并
git pull origin master:brantest
#遠(yuǎn)程分支與當(dāng)前分支合并,冒號(hào)后面的部分可以省略
git pull origin master
#將當(dāng)前分支推送到遠(yuǎn)程對(duì)應(yīng)的分支(若遠(yuǎn)程無對(duì)應(yīng)分支,則推送無效) 
git push 
#將分支dev提交到遠(yuǎn)程origin/dev(遠(yuǎn)程沒有則創(chuàng)建, 遠(yuǎn)程沒有dev則創(chuàng)建) 
git push origin dev 
#如果當(dāng)前分支與多個(gè)主機(jī)存在追蹤關(guān)系,則可以使用 -u 參數(shù)指定一個(gè)默認(rèn)主機(jī),這樣后面就可以不加任何參數(shù)使用git push
#,不帶任何參數(shù)的git push,默認(rèn)只推送當(dāng)前分支,這叫做simple方式,還有一種matching方式,會(huì)推送所有有對(duì)應(yīng)的遠(yuǎn)程分支的本地分支, Git 2.0之前默認(rèn)使用matching,現(xiàn)在改為simple方式
git push -u origin master
#刪除分支 (如果分支沒有被合并不允許刪除)
git  branch -d 分支名稱
#刪除分支(強(qiáng)制刪除分支)
git  branch  -D 分支名稱
#合并某分支到當(dāng)前分支(當(dāng)前目錄主分支,將來源分支合并到主分支上。合并后來源分支仍然存在)
git merge 來源分支
#合并分支(禁用 Fast forward)
git merge –no-ff -m “描述” dev
#查看分支合并情況
git log –graph –pretty=oneline –abbrev-commit

2.5.4 標(biāo)簽常用命令

#創(chuàng)建標(biāo)簽
##對(duì)當(dāng)前版本建立標(biāo)簽 
git tag tagname
##對(duì)歷史版本建立標(biāo)簽 
git tag tagname commit_id
##commit_id 添加說明 
git tag -a tagname -m “描述…”
##查看所有標(biāo)簽 
git tag
##查看某個(gè)標(biāo)簽具體信息
git show tagname#刪除標(biāo)簽
##刪除本地標(biāo)簽
git tag -d tagname#推送標(biāo)簽
##推送本地的某個(gè)標(biāo)簽到遠(yuǎn)程 
git push origin tagname
##一次性推送所有分支
git push origin –tags

2.5.5 暫存區(qū)命令

# 添加指定文件到暫存區(qū)
git add [file1] [file2] ...
# 添加指定目錄到暫存區(qū),包括子目錄
git add [dir]
# 添加當(dāng)前目錄的所有文件到暫存區(qū)
git add .
#用暫存區(qū)中的文件覆蓋工作目錄中的文件
git  checkout -- 文件名
#將暫存區(qū)中文件刪除
git  rm  --cached 文件名
#查看當(dāng)前的狀態(tài)
git status	
#提交文件(將暫存區(qū)的文件提交到本地git倉庫)
git commit -m '添加內(nèi)容'	
git commit -F ~/gitcommit/gitcommit_bug

2.5.6 查看提交歷史

Git 提交歷史一般常用兩個(gè)命令:
git log - 查看歷史提交記錄。
git blame <file> - 以列表形式查看指定文件的歷史修改記錄。
  1. git log
--oneline 選項(xiàng)來查看歷史記錄的簡潔的版本
--graph 選項(xiàng),查看歷史中什么時(shí)候出現(xiàn)了分支、合并
--reverse 參數(shù)來逆向顯示所有日志
--author查找指定用戶的提交日志    git log --author=Linus
--since/--before 指定日期    git log --oneline --before={3.weeks.ago} --after={2010-04-18}

在這里插入圖片描述

  1. git blame < file >
    在這里插入圖片描述

2.5.7 gitk

gitk是git圖形化的界面軟件版本,對(duì)倉庫的管理更為直觀,不需要在命令行中進(jìn)行繁瑣的控制,將各種信息合理的組織在不同的軟件窗口中,讓一些很繁瑣的操作可以在圖像軟件中只需要一鍵獲得。合理的結(jié)合命令行和圖形工具可以大大提高軟件開發(fā)和分支管理的效率。
在這里插入圖片描述

http://aloenet.com.cn/news/41940.html

相關(guān)文章:

  • 讓做網(wǎng)站策劃沒經(jīng)驗(yàn)怎么辦成都私人網(wǎng)站建設(shè)
  • 怎么做直播室的網(wǎng)站百度應(yīng)用平臺(tái)
  • 哪家公司做企業(yè)網(wǎng)站百度pc網(wǎng)頁版入口
  • 怎建立自己網(wǎng)站做淘寶客軟文寫作的十大技巧
  • 杭州網(wǎng)站制作報(bào)價(jià)谷歌優(yōu)化培訓(xùn)
  • 寶塔面板怎么搭建網(wǎng)站關(guān)鍵詞優(yōu)化方法有什么步驟
  • 濟(jì)南做網(wǎng)站哪家便宜西安百度公司地址介紹
  • 為什么自己做的網(wǎng)站打開是亂碼百度seo公司整站優(yōu)化
  • 微信開放平臺(tái)可以做網(wǎng)站么百度官方網(wǎng)平臺(tái)
  • 國內(nèi)個(gè)人網(wǎng)站搭建網(wǎng)站頁面設(shè)計(jì)
  • 企業(yè)網(wǎng)站經(jīng)典案例合肥今天的最新消息
  • 做窗簾店的網(wǎng)站關(guān)鍵詞競價(jià)排名名詞解釋
  • 網(wǎng)站建設(shè)平臺(tái)簡介微商引流的最快方法是什么
  • 谷歌瀏覽器在線打開重慶seo代理
  • 帝國cms商城推薦一個(gè)seo優(yōu)化軟件
  • 做政府網(wǎng)站建設(shè)哪家好關(guān)鍵詞小說
  • 做設(shè)計(jì)的搜素材上什么網(wǎng)站廣州seo公司
  • 查詢個(gè)人信息的網(wǎng)站手機(jī)seo排名軟件
  • 做面料要建議網(wǎng)站銷售管理怎么帶團(tuán)隊(duì)
  • 做百度商橋網(wǎng)站寧寧網(wǎng)seo
  • 哪個(gè)平臺(tái)買東西最便宜seo網(wǎng)站搜索優(yōu)化
  • 怎樣創(chuàng)造網(wǎng)站友情鏈接檢測
  • 宣傳片制作軟件appseo優(yōu)化的基本流程
  • 定期做圖書推薦的網(wǎng)站今日熱搜第一名
  • wordpress 模板帶數(shù)據(jù)西安seo排名優(yōu)化推廣價(jià)格
  • 鄉(xiāng)村旅游網(wǎng)站的建設(shè)百度推廣公司怎么代理到的
  • 利用qq 群做網(wǎng)站推廣青島百度推廣優(yōu)化
  • 營銷網(wǎng)站建設(shè)百度關(guān)鍵字搜索排名
  • dw可以做h5網(wǎng)站網(wǎng)店推廣實(shí)訓(xùn)報(bào)告
  • 來年做哪個(gè)網(wǎng)站致富怎樣優(yōu)化網(wǎng)站排名靠前