日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

分布式版本控制工具Git

發布時間:2023/12/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分布式版本控制工具Git 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、Git技術簡介

Git是一個分布式版本控制系統,與集中式的SVN不同。

?

?

1. 主要特點

集中式特點:

  • 所有人的資源全部保存在中央服務器。
  • 所有人開發前都需要從中央服務器上下載同步其他人的代碼才能繼續開發,慢。
  • 中央服務器一旦數據丟失,意味著所有數據全部丟失。
  • 分布式特點:

  • 每個人的電腦都是一個完整的版本庫
  • 每個人修改完畢之后,會將資源發送至其他每個同事的電腦。
  • 如果個人電腦數據丟失,隨便從其他人那里復制一份即可。
  • ?

    二、Git環境搭建

    ?1.下載Git客戶端

    https://git-scm.com/downloads

    2.安裝Git客戶端

    注釋:Git使用了cygwinwindows下模擬了unix環境,所以支持很多unix文件操作命令。

    a)?git客戶端下載后安裝在非中文目錄下。

    b)?下載Git圖形化工具:smartGit

    http://www.syntevo.com/static/smart/download/smartgit/smartgit-win32-setup-jre-17_0_5.zip

    3.創建版本庫

    解釋:所謂版本庫,就是本地的倉庫,本質就是一個文件夾,只不過該文件夾會受到git的管理,每個文件的創建修改都能跟蹤

    例如要將d盤下的work目錄中創建gitrepo目錄作為git倉庫文件夾。

    ?

    倉庫創建好之后,會生成.git目錄.git的目錄,是Git來跟蹤管理版本庫的,沒事千萬不要手動修改這個目錄里面的文件,不然改亂了,就把Git倉庫給破壞了。默認是隱藏的。

    ?

    三、Git的常用版本控制命令

    1.?添加文件到版本庫

    · 示例: 向版本倉庫中添加一個HelloGit.java文件。

    · 注意事項:

    ① 版本控制器只能記錄文本文件的改動痕跡。

    ② 二進制文件只能記錄大小變化。

    ③ 文本文件必須使用UTF-8編碼

    windows用戶不要使用系統自帶記事本編輯器。

    · 操作:

    1.1 git的倉庫目錄或者子目錄中創建一個HelloGit.java文件。

    1.2 使用 stage 操作將文件把文件交給git管理的暫存區【相當于數據庫的dml語句,將數據修改存放在rollback seagment回滾段,暫存區與當前客戶端對應】

    ?

    1.3 使用 commit 完成文件的提交【相當于數據庫的提交事務,將暫存的內容提交給git管理。】

    ?

    使用commit提交文件需要設置?因為Git是分布式版本控制系統,所以,每個機器都必須自報家門:你的名字和Email地址。

    注意git config命令的--global參數,用了這個參數,表示你這臺機器上所有的Git倉庫都會使用這個配置

    ?

    2.?版本管理機制

    開發中會對代碼文件進行一次又一次修改,就好比我們打rpg游戲,每打敗一個boss就存檔一次,如果某次打boss失敗了,我們也可以利用存檔回退到之前的某個進度,不至于從頭開始。git也一樣,每次修改到一定程序,就要利用commit命令產生一個快照,日后一旦改錯了,也可以利用commit快照回退之前的某個快照時刻

    stage是將當前修改提交到暫存區。

    commit 才是一次性將暫存區的數據同步到倉庫。

    ?

    ③ 每次commit,其實就是對當前進度生成一個快照,就表示當前進度。

    進度模型:

    3.?版本管理

    4.1 工作區修改撤銷

    4.2 內容已經被提交到暫存區staged

    如果需要將工作區的內容頁撤銷掉,需要使用git checkout -- file

    4.3 內容已經commit到倉庫區:使用版本回退。

    ①?使用git log命令查看文件的修改詳細歷史記錄。

    ② 跳到指定版本

    ③ 工作區文件撤銷和倉庫保持一致,需要對工作區文件撤銷操作。

    4.4 刪除文件

    ps:本質也是提交修改,刪除也是一種修改。

    ① 刪除工作區的文件,然后再smartgit中提交修改。

    ?

    四、遠程倉庫

    1.?創建遠程倉庫

    1.1 使用郵箱在第三放GitHub網站注冊一個賬號。

    開源中國碼云:http://git.oschina.net/

    1.2 創建遠程倉庫

    注意:遠程倉庫和本地倉庫名必須一致,否則無法提交。

    2.?綁定遠程倉庫

    2.1 復制遠程倉庫的地址

    ?

    2.2 smartgit中添加遠程倉庫地址進行綁定。

    ?

    2.3 先確保項目已經commit

    2.4 點擊項目文件夾,然后點擊pull。將本地倉庫和遠程倉庫綁定。

    ?

    2.5 將本地項目推送到遠程倉庫.

    ?

    3.?從遠程倉庫克隆

    注釋:最正確的工作流程是先創建遠程倉庫,然后克隆遠程倉庫

    3.1:創建遠程倉庫

    3.2:克隆遠程倉庫

    git clone 遠程倉庫項目的地址

    3.3 使用smart克隆clone遠程倉庫到本地

    3.4 可以在克隆到本地的倉庫進行操作。

    4.?git操作命令簡圖

    說明:

    workspace:本地工作區

    Index/Staged:暫存區

    Repository:本地倉庫

    Remote:遠程倉庫

    ?

    五、分支管理

    ?

    1.?概念

    ?

    分支就好比是火影中的影分身之術,比如你要同時完成學習SpringLinux兩件事,你可以分身,然后一個分身花5天時間去學習Spring,另一個分身花5天學習Linux,這5天之內各個分身互不干擾,5天之后分身合并,你就同時掌握了SpringLinux兩種技術。

    ?

    ?

    ?

    2. 作用

    ?

    比如開發中,你有一個任務需要1個月完成,如果完成再提交,過程中有代碼丟失的風險,但是完成之前就提交可能導致別人無法工作。通常來講,一個人使用一個分支。

    ?

    ?

    ?

    3.?分支管理

    ?

    ps:系統默認有一個主分支--master

    ?

    ?

    ?

    3.1 查看目前所有的分支:git branch

    ?

    3.2 創建分支:git branch 分支名

    ?

    3.4 合并分支:

    ?

    4.?解決沖突

    ps:所謂沖突一般就是兩個人開發中在各自的分支中修改了同一個文件,并且要提交。

    就好比你有兩個分身,都學習了做飯西紅柿炒雞蛋,一個放糖,一個放鹽,合并的時候必須把這個矛盾手動解決,

    執行合并是會出現上圖中的狀態,需要兩個分支所對應的人共同協商給出沖突解決結果,將文件修改之后,然后由其中一個人完成addcommit,然后再合并。

    5.?遠程倉庫分支管理

    5.1 將指定分支推送到遠程:git push origin 分支名

    ?

    6.?分支管理策略

    6.1 master分支,主分支,時刻與遠程倉庫保持一致。

    6.2 dev分支,開發分支,涉及到多人協作,且保存這多人共同的開發進度。如果所有人的開發進度需要與遠程保持一致,則需要推送到遠程,否則本地也可以。

    六、標簽管理

    概念:tag其實就是對某個commit的快照添加個標記,快照雖然也有版本號,但是是一串32位的UUID很難記憶也不易于溝通,而換成標簽tagv1.0 v2.0這樣的標記就很容易記憶。比如“將master主分支上,v1.0標簽的項目打包發布”就比 “將master主分支上a732s8a89s88d...版本的項目打包發布”容易的多。

    1.?創建標簽

    切換到要添加標簽的分支上,找到對應的版本,右鍵選擇Add Tag操作。

    2.?管理標簽

    2.1 查看所有標簽

    ?

    2.2 刪除標簽

    在標簽右鍵--->Delete即可。

    2.3 把標簽推送到遠程倉庫

    選中標簽--->右鍵-->push to

    ?

    七、 Eclipse整合操作?

    1. 創建項目分享到git遠程倉庫。?

    2. git倉庫克隆項目?

    3. 開發過程中的操作流程?

    八、 常用的第三方在線Git倉庫?

    轉載于:https://www.cnblogs.com/awzf/p/9957181.html

    總結

    以上是生活随笔為你收集整理的分布式版本控制工具Git的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。