<i id="yupd0"></i>
  • <i id="yupd0"></i>
  • <thead id="yupd0"></thead>
    <blockquote id="yupd0"></blockquote>
    <i id="yupd0"></i>
  • 碼迷,www.greeshyz.com
    首頁 > 其他好文 > 詳細

    Git

    時間:2020-07-21 23:24:41      閱讀:64      評論:0      收藏:0      [點我收藏+]

    標簽:目的   開源   個人   log   class   復制   開發者   tee   上進   

    一、什么是 Git

    1. 基本介紹

    • Git 是一個開源的分布式版本控制系統,用于敏捷高效地處理任何或小或大的項目
    • Git 是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件
    • Git 與常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本庫的方式,不必服務器端軟件支持

    2. Git 與 SVN 的區別

    • 1、Git 是分布式的,而 SVN 不是。這是 Git 和其它非分布式的版本控制系統,例如 SVN,CVS 等,最核心的區別
    • 2、Git 把內容按元數據方式存儲,而 SVN 是按文件。所有的資源控制系統都是把文件的元信息隱藏在一個類似 .svn.cvs 等的文件夾里
    • 3、Git 分支和 SVN 的分支不同。分支在 SVN 中一點都不特別,其實它就是版本庫中的另外一個目錄
    • 4、Git 沒有一個全局的版本號,而 SVN 有。目前為止這是與 SVN 相比 Git 缺少的最大的一個特征
    • 5、Git 的內容完整性要優于 SVN。Git 的內容存儲使用的是 SHA-1 哈希算法。這能確保代碼內容的完整性,確保在遇到磁盤故障和網絡問題時降低對版本庫的破壞

    技術圖片

    二、Git 安裝配置

    windows 安裝:進入網站 https://git-scm.com/ 下載安裝,然后在 cmd 命令行配置

    # 創建 git 用戶
    > git config --global user.name "Felix"
    > git config --global user.email "Felix@126.com"
    
    # 檢查信息是否寫入
    > git config --list
    

    ubuntu 配置apt-get install git

    三、Git 基本概念

    1. Git 工作流程

    Git 的工作流程基本上分為工作區暫存區版本庫

    • 工作區:就是在電腦本地可以看到的目錄
    • 暫存區:一般存放在 .git 目錄下的 index 文件中,所以暫存區有時也叫作索引
    • 版本庫:工作區有一個隱藏目錄 .git,這個不算工作區,而是 Git 的版本庫

    技術圖片

    2. 版本庫間的通訊

    技術圖片

    3. Git 分支管理

    ? 技術圖片

    四、Git 基礎命令

    1. 創建 Git 倉庫

    Git 使用 git init 命令來初始化一個 Git 倉庫,由于 Git 很多命令都需要在 Git 倉庫中運行, git init 很重要

    在執行完成 git init 命令后,Git 倉庫會生成一個 .git 目錄,該目錄包含了資源的所有數據,其他的項目目錄保持不變(不像 SVN 會在每個子目錄生成 .svn 目錄,Git 只在倉庫的根目錄生成 .git 目錄)

    使用方法

    • 使用當前目錄作為 Git 倉庫,我們只需使它初始化
    git init
    

    該命令執行完后會在當前目錄生成一個 .git 目錄,

    • 使用我們指定目錄作為 Git 倉庫
    git init 文件名
    

    初始化后,會在該文件目錄下會出現一個名為 .git 的目錄,所有 Git 需要的數據和資源都存放在這個目錄中

    2. 設置用戶

    使用 Git 的時候也需要創建用戶,其中用戶也分為全局用戶和局部用戶

    • 全局用戶
    git config --global user.name ‘用戶名‘
    git config --global user.email ‘用戶郵箱‘
    # 注:在全局文件 C:\Users\用戶文件夾\.gitconfig 下新建用戶信息,可以在所有倉庫都可以使用
    
    • 局部用戶
    git config user.name ‘用戶名‘
    git config user.email ‘用戶郵箱‘
    # 注:在當前倉庫下的 config 新建用戶信息,只能在當前倉庫下使用
    # 注:一個倉庫有局部用戶,優先使用局部用戶,沒有配置再找全局用戶
    

    3. 查看倉庫狀態

    當倉庫中有文件增加、刪除、修改,都可以在倉庫狀態中查看

    # 查看倉庫狀態
    git status
    
    # 查看倉庫狀態的簡約顯示
    git status -s
    

    4. 工作區操作

    在工作區中通過任何方式完成的文件刪與改都會被 Git 記錄,而空文件夾不會被 Git 記錄

    • 撤銷工作區操作
    # 撤銷所有暫存區的提交
    git checkout
    
    # 撤銷某一文件的暫存區提交
    git checkout 文件名
    
    • 工作區內容提交到暫存區
    # 添加指定文件
    git add 文件名
    
    # 添加項目中所有文件
    git add .
    
    • 撤銷暫存區提交:add 的逆運算
    # 撤銷所有暫存區的提交
    git reset HEAD
    
    # 撤銷某一文件的暫存區提交
    git reset 文件名
    
    # 撤銷所有暫存區的提價
    git reset .
    
    • 提交暫存區內容到版本庫
    git commit -m "版本描述信息"
    
    • 撤銷版本庫提交:commit 的逆運算
    # 查看歷史版本
    git log
    git reflog
    
    # 查看時間點之前的或者之后的日志
    git log --after 2020-07-21
    git log --before 2020-07-21
    git reflog --after 2020-07-21
    git reflog --before 2020-07-21
    
    # 查看指定開發者日志
    git log --author 作者名字
    git reflog --author 作者名字
    
    # 回滾到指定版本
    	# 回滾到上一版本
        git reset --hard HEAD^
        git reset --hard HEAD~
        # 回滾到上三個版本
        git reset --hard HEAD^^^
        git reset --hard HEAD~3
        # 回滾到指定版本號的版本
        git reset --hard 版本號
    

    五、過濾文件

    在日常開發中總有幾個文件不需要被管理,那么如何讓 Git 不管理這些文件呢?需要創建 .gitignore 文件

    # 1) 在倉庫根目錄下創建該文件
    # 2) 文件與文件夾均可以被過濾
    # 3) 文件過濾語法
    

    那如何定義這些被過濾的文件呢?

    # 文件或文件夾名:代表所有目錄下的同名文件或文件夾都被過濾
    # /文件或文件夾名:代表倉庫根目錄下的文件或文件夾被過濾
    
    a.txt:項目中所有 a.txt 文件和文件夾都會被過濾
    /a.txt:項目中只有根目錄下 a.txt 文件和文件夾會被過濾
    /b/a.txt:項目中只有根目錄下的 b 文件夾下的 a.txt 文件和文件夾會被過濾
    *x*:名字中有一個 x 的都會被過濾(* 代表 0~n 個任意字符)
    空文件夾不會被提交,空包會被提交,包可以被提交(包中有一個init空文件)
    

    六、多分支開發

    1. 分支操作

    在實際項目中,一個項目需要多人一起協同開發,這就涉及到了多分支開發的概念

    技術圖片

    指令 詳解
    git branch 分支名 創建分支
    git branch 查看分支
    git checkout 分支名 切換分支
    git checkout -b 分支名 創建并切換到分支
    git branch -d 分支名 刪除分支
    git branch -a 查看遠程分支
    git merge 分支名 合并分支
    # 1)多個開發者都是在一個分支上進行開發,不出意外,該分支一定叫 dev(協同開發)
    # 2)如果出現一個特殊任務(敏感任務),與正常業務關系不緊密,甚至可能大的影響正常的 dev 分支開發,可以依賴 dev 開一個子分支,進行開發,開發完畢后合并到 dev 分支,再刪除該分支即可
    # 3)所有的開發任務都可以在 dev 分支上進行(除非公司硬性要求不能直接在 dev 分支開發,只能在 dev 子分支開發,測試通過后才能合并給 dev)
    

    2. 遠程 Git 開發

    既然要進行多分支開發,當然也需要遠程倉庫的存在,所以就有一些人搭建了倉庫,常見的遠程倉庫有 GitHub、Gitee 以及公司自己搭建的 GitLab

    1) 兩種本地與遠程倉庫同步

    """
    1)作為項目倉庫初始化人員:
    	線上要創建空倉庫 => 本地初始化好倉庫 => 建立 remote 鏈接(remote add) => 提交本地倉庫到遠程(push)
    	
    2)作為項目后期開發人員:
    	遠程項目倉庫已經創建成功 => 復制遠程倉庫到本地(clone) => 進入倉庫就可以進行接下來的開發
    """
    

    技術圖片

    2) remote 源操作

    """
        1)查看倉庫已配置的遠程源
        >: git remote
        >: git remote -v
    
        2)查看remote命令幫助文檔
        >: git remote -h
    
        3)刪除遠程源
        >: git remote remove 源名
        eg: git remote remove origin
    
        4)添加遠程源
        >: git remote add 源名 源地址
        >: git remote add orgin git@gitee.com:doctor_owen/luffyapi.git
    
        5)提交代碼到遠程源
        >: git push 源碼 分支名
    
        6)克隆遠程源
        >: git clone 遠程源地址
        """
    
        """
        1)通過克隆方式連接遠程源,默認遠程源名就叫 origin;所以主動添加遠程源來連接遠程倉庫,源碼也用 origin
        2)本地一個倉庫只需要和遠程一個源進行同步,所以只需要連接一個遠程源,如果還想把本地代碼同步給第三個平臺,那么可以通過主動添加遠程源來連接第三個平臺的遠程倉庫,此時的源碼就不能再叫 origin 了,比如 online 都可以
        3)pull 和 push 都可以提供選擇不同的源碼,和不同的遠程倉庫交互
    """
    

    3. 采用 SSH 協議連接遠程源

    1) 創建電腦的公鑰和私鑰

    # 官網:https://gitee.com/help/articles/4181#article-header0
    # 本機命令,生成公鑰:ssh-keygen -t rsa -C "*@*.com",郵箱可以任意填寫
    # 本機命令,查看公鑰:cat ~/.ssh/id_rsa.pub
    # 碼云線上添加公鑰:項目倉庫 => 管理 => 部署公鑰管理 => 添加公鑰 => 添加個人公鑰
    

    技術圖片

    2) 提交本地代碼到遠程倉庫

    # 命令
    git push origin master
    

    3)拓展

    A. 如何成為其他碼云項目的開發者

    """
        1)生成自己電腦的公鑰,配置到自己的碼云個人公鑰中
        2)把自己的碼云用戶名提供給別人,別人添加你成為項目開發者
        3)自己確認添加,成為開發者,克隆開發項目,進行開發
    """
    

    B. 如何成為公司自建 Git 服務器的開發者

    """
        1)生成自己電腦的公鑰(公鑰生成一次就可以了),把它提交給項目管理者
        2)項目管理者添加你公鑰,加入開發者,提供給你項目克隆地址
        3)克隆開發項目,進行開發
    """
    

    4. 協同開發

    """
        1)作為開發者,第一次同步項目(前臺已經是項目開發者了)
        git clone 項目地址
    
        2)保證自己本地有 dev 分支,且與遠程倉庫版本同步(沒有就自己新建)
    
        3)本地開發的代碼,必須 add、commit 到本地版本庫后,才和遠程倉庫進行交互
    
        4)交互順序:必須 先拉(pull)后提(push)
    
        5)必須切換到要交互的分支,在與遠程同名的分支進行交互,如本地 dev 與遠程 dev 交互
        git checkout dev
        git add .
        git commit -m ‘本次提交的信息提示‘
        git pull origin dev
        git push origin dev
    """
    

    5. 沖突解決

    """
        1)在遠程倉庫和本地倉庫版本不一致時,拉取遠程倉庫版本到本地時,兩個版本進入融合,可能會出現版本沖突
    
        2)定位沖突文件沖突代碼,線下溝通沖突代碼,整合代碼解決沖突
    
        3)將解決沖突后的代碼重新提交到本地版本庫
    
        4)再拉去遠程倉庫,直到沒有沖突,提交本地版本庫到遠程
        """
    
        """
        <<<<<<< HEAD  # 沖突的開始
        # 自己的代碼
        =======  # 分割線
        # 別人的代碼
        >>>>>>> b63c408abd05b87fc492d40523240561999dba50  # 沖突的結束(版本)
        """
    
        """
        1)刪除沖突相關標識:沖突的開始、分割線、沖突的結束(版本)
        2)線下溝通,根據實際需求完成代碼整合
        3)測試整合后的代碼
    
        """
    
        """
        出現沖突的前提:
        1)不同開發者同時操作了同一文件
        2)并且在相同行寫了代碼
        強調:有業務交際時,版本合并不一定會出現沖突相關的標識,但是可能會帶著代碼運行崩潰,所有理論上每一次版本合并,都要測試合并后的所有功能(及其之少的情況)
    """
    

    6. 線上分支合并

    技術圖片

    7. 遠程倉庫回滾

    """
        用dev分支舉例
        1)本地切換到遠程要回滾的分支對應的本地分支
        git checkout dev
    
        2)回滾本地分支
        git reset --hard 版本號
    
        3)本地版本強行提交給服務器
        git push origin dev -f
    """
    

    Git

    標簽:目的   開源   個人   log   class   復制   開發者   tee   上進   

    原文地址:https://www.cnblogs.com/zhenghuiwen/p/13356977.html

    (0)
    (0)
       
    舉報
    評論 一句話評論(0
    登錄后才能評論!
    迷上了代碼!
    91色国产论坛,久草99福利资源,青青草在线华人,99热在线视频观看免费,青青草a片免费看,青青草av视频导航,香蕉网站伊人大香蕉 青青碰人青青草免费 国产自拍偷拍在线播放 青青草华人在线av 伊人影院在线大香 无码大香蕉网伊人色 久久大香蕉视频网 青草精品资源在线 伊人大香蕉在线精品 97资源总站久久爱视频 自拍中文字幕 青青草手机在线视频 青青草久久爱大香蕉 国产青青草自拍 伊人大香蕉在线精品 97资源总站久久爱视频 自拍中文字幕 av图片在线看 久草视频福利免费资源站 自拍国产视频在线 www.琪琪色 爱色影爱色搞搞 97资源库 大香萑a久草视频 久草在线福利资站 青青草成人在线免费视频 久久精品国can视频在热 99热国产情侣偷拍 国产自拍 在线 凹凸分类视频97免费 av啪啪中文网站 青青草91自拍视频 奇米影视第四色 国产无限制自拍 大香蕉伊人精品在线 久久手机看片国产免费 无码大香蕉网伊人色 亚洲激情色 久草99福利资源 狼人色终合网站 91色国产色去色 2019奇米777奇米网 久久草妹妹色 米奇影院888奇米色 青青青草成人免费现看 超碰自拍 在线99热这里精品 色琪琪永久无码 伊人大香蕉成人视频综合 国产自拍视频在线 大香蕉伊人久操在线 青青草久草热久久草 偷拍自拍第四色 奇米网电影网 超碰99久久天天拍日日操 天天拍天天拍久草片 激情图片,激情小说 超碰碰av大香蕉伊人 久草97大香蕉伊人 美女伊人色情香蕉网站 青青草华人免费视频在线 大香蕉伊人久草视频 奇米网在线手机在线 青草七次郞视频观看 青青草公开在线观看 狠狠夜夜干大香蕉伊人 777奇米网 日逼视频网站 欧美人和动物XXX 大香蕉色 欧美 国产 奇米影院首页 大香蕉伊人久久爱在线 青青青草免费手机播放 国产青青草 欧美一级黑寡妇夜夜干 啪啪 国产精品 东方aⅴ在线看 手机看A片 777米奇色狠狠俺去啦 香蕉网站伊人中文字幕 久操在线新免费视频 伊人影院在线大香 大香蕉成人伊人在线视频 青青草成人在线视频观看 91国产自拍偷拍视频 青青草色爱久久 精品国产自拍 小色狗 琪琪热热色无码 影音先锋大香蕉久草资源 小明视频看看成人免费 俺去了色网婷婷色 久久色情片 超碰在线青青草 超碰视频起碰视频 国产偷拍自拍影音先锋 小明视频看看成人免费 俺去了色网婷婷色 久久色情片 超碰在线青青草 超碰视频起碰视频 国产偷拍自拍影音先锋 老鸭窝在线视频 www.奇米在线四色 老版本日本怡春院 强奸乱伦在线观看 青青草在观视频 色琪琪在线视频原网 欧美色色大香焦 欧美色热图 亚洲香蕉手机在线观看视频 偷拍偷窥自拍网站 超91在线观看 最新奇米奇色777在线 婷婷网站 微拍秒拍福利视频 自拍在线 精品视频 欧美情色无码在线 久草激情视频 午夜高清影院在线观看 第四色青娱乐奇米影视 青青草在线综合 99热这里有精品 自拍偷拍影音先锋 国产自拍 先锋影音 成人在线视频97 久草在线免费观看大香蕉 99er久久国产精品在线 精品国产在线偷拍 啪啪青青草视频 国内偷拍 亚洲 大香蕉成人手机在线 在线伊人大香蕉手机版 久草伊人久草视频 伊人久久青青草综合网 青青草手机在线视频 青青草久久爱大香蕉 国产青青草自拍 伊人大香蕉在线精品 97资源总站久久爱视频 自拍中文字幕 av图片在线看 久草视频福利免费资源站 自拍国产视频在线 www.琪琪色 爱色影爱色搞搞 97资源库 大香蕉在线视频免费观看 a片直播妹子在线视频 a.v在线视频 开心五月色婷婷免费 香蕉福利视频在线观 青青草成人+激情偷拍 青青草视频大香蕉伊人网 av啪啪中文网站 青青草91自拍视频 奇米影视第四色 国产无限制自拍 大香蕉伊人精品在线 久久手机看片国产免费 无码大香蕉网伊人色 亚洲激情色 久草99福利资源 狼人色终合网站 91色国产色去色 2019奇米777奇米网 久久草妹妹色 米奇影院888奇米色 青青青草成人免费现看 超碰自拍 在线99热这里精品 色琪琪永久无码 伊人大香蕉成人视频综合 国产自拍视频在线 大香蕉伊人久操在线 青青草久草热久久草 偷拍自拍第四色 奇米网电影网 超碰99久久天天拍日日操 天天拍天天拍久草片 激情图片,激情小说 青青草久草热久久草 偷拍自拍第四色 奇米网电影网 超碰99久久天天拍日日操 天天拍天天拍久草片 操好屌色 米奇先锋 久草 偷拍 亚洲,偷拍,自拍,精品 伊人大香蕉综合色 大香蕉久久久 成人色啪啪 大香蕉色看片 欧美自拍在线 久久色综合网站xoxo 久热草大香蕉在线视频 久久大香蕉视频网 肏逼免费视频在线 网友自拍偷拍 欧美 国产 奇米影院首页 大香蕉伊人久久爱在线 青青青草免费手机播放 国产青青草 欧美一级黑寡妇夜夜干 啪啪 国产精品 东方aⅴ在线看 手机看A片 777米奇色狠狠俺去啦 香蕉网站伊人中文字幕 久操在线新免费视频 伊人影院在线大香 大香蕉成人伊人在线视频 青青草成人在线视频观看 91国产自拍偷拍视频 青青草色爱久久 精品国产自拍 小色狗 琪琪热热色无码 影音先锋大香蕉久草资源 小明视频看看成人免费 俺去了色网婷婷色 久久色情片 超碰在线青青草 欧美激情图片 自拍超碰 久草视频在线 天天 综合色伊人网 大香蕉视频成人中文网 大香蕉伊人欧美色 久热在线播放中文字幕 青青草久草福利 欧美色色大香焦 欧美色热图 亚洲香蕉手机在线观看视频 偷拍偷窥自拍网站 超91在线观看 最新奇米奇色777在线 婷婷网站 微拍秒拍福利视频 自拍在线 精品视频 欧美情色无码在线 久草激情视频 午夜高清影院在线观看 第四色青娱乐奇米影视 青青草在线综合 99热这里有精品 自拍偷拍影音先锋 国产自拍 先锋影音 成人在线视频97 久草在线免费观看大香蕉 99er久久国产精品在线
    久久草2019在线观看 99这里有精品 大香蕉免费公开青青草 狠狠色丁香婷婷综合 国产久草福利手机在线 青青草黄色三级网站 大香蕉他也啪 青青草视频大香蕉伊人网 久久爱大香焦在线视频 日本有码视频 成人视屏 国产精品91在线 91国产自拍小视频 伊人狼人香蕉网小说 青青草香蕉草久在线 av青青操 亚洲自拍欧美 91 国产 在线 97超碰资源共享 青青草伊人大香蕉 奇米四色网 国産偷拍91 精品国产在线自拍 伊人大香蕉色琪琪影院 caoprom超碰 青青视频在线视频 开心五月婷婷色婷在线 第四色色 Caoprom超碰视频 亚洲图片欧美图色姐 天天干情色网 操妹妹干妹妹 丁香五月婷婷伊人大香蕉 国产精品自拍偷拍在线 青青青成人社区 成人av在线 碰碰视频在线免费播放 影音先锋 小说色 久久草大香蕉 亚洲情色狼人网 思思久久re热线播放 久久草超碰 播播影院私人影院 大香蕉他也啪 米奇影视 成人国产老鸭窝 伊人大香蕉久久天天啪 男人的天堂 国产精品自偷拍 很很鲁在线97