<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      計算機工具基礎(七)——Git

      Git

      Git是一種分布式版本控制系統,被其跟蹤的文件可被查詢精細到行的修改記錄、回退版本、建立分支等

      模型

      一般流程:工作區\(\to\)暫存區\(\to\)倉庫(本地\(\to\)遠端)

      • 工作區:項目的工作臺,用戶在此處直接編輯文件

      • 暫存區(索引):用于暫存準備提交至本地倉庫的文件,Git只跟蹤暫存區內的文件

        • git ls-files:查看暫存區
        • git ls-tree [Commit/Branch]:查看某個提交/分支的樹形結構
      • 倉庫:存儲版本歷史的版本庫,分為本地倉庫與遠端倉庫。

        • git init:將此目錄初始化為本地倉庫(位于.git下,若要刪除全部倉庫,刪除.git即可)
        • git status:查看該倉庫中文件狀態,包括修改、新增、刪除、未跟蹤等信息

      配置

      • 為標識提交者,需通過配置進行標識
      • 用戶名配置:git config --global user.name ["name"]
      • 郵箱配置:git config --global user.email ["email"]
      • global選項代表對所有倉庫有效
      • git的配置可在.gitconfig文件中找到

      文件狀態

      未跟蹤態

      • 未跟蹤:該文件未被Git跟蹤,即其僅存在于工作區中,不在暫存區或倉庫中

        • git add [Name]:將文件或文件夾添加至暫存區(支持使用通配符)
          選項-p:交互式添加文件
      • 未跟蹤/未在倉庫中的文件(夾)名添加至.gitignore中,即可忽略Git對其一切管理(注意文件夾以/結尾)
        若先前已跟蹤/已在倉庫中,則需在暫存區和版本控制中刪除:git rm -r --cached [name]
        注:git add命令支持-f選項,此選項會忽略.gitignore中的配置,將該目錄下所有文件添加到暫存區。

      已跟蹤態

      • 未修改:該文件相較于當前版本倉庫無任何修改
      • 已修改:該文件在工作區已修改,但修改還未被添加至暫存區
        • git stash:臨時保存工作區更改
        • git blame [Name]:查看文件歷史修改
      • 已暫存:文件已準備提交至本地倉庫

      文件刪除

      • git rm --cached [Name]:在暫存區刪除文件(工作區不刪除)
      • git rm -f [Name]:同時在暫存區和工作區刪除文件。

      若要刪除版本庫中的內容,只能在暫存區中先刪除,再進行提交。

      提交、標簽

      提交

      • 提交(Commit):將暫存區文件提交至本地倉庫,并產生一個新版本,每個版本通過唯一的16進制字符串標識。

      • HEAD指針:永遠指向當前操作版本,隨新提交而自動更新(相當于鏈表的頭節點)。

        • git reflog:查看HEAD指針變動歷史。
      • 訪問提交:

        • 直接使用16進制字符串訪問提交。
        • 通過HEAD指針訪問:HEAD~[num]HEAD^[num],代表HEAD之前的第num個版本,若num為1可省略。
      • git commit -m ["Reason"]:將暫存區中的文件提交至本地倉庫,提交原因必填。若省略["Reason"],則調用默認編輯器填寫提交原因。
        選項:-a將所有文件添加至暫存區并提交

      • git log:查看提交歷史、當前HEAD指針位置
        選項:--oneline每個提交只輸出一行
        --graph以ASCII圖顯示提交歷史

      • git checkout [Commit]:將HEAD指針指向特定提交,將發生頭指針分離。

      • 頭指針分離:HEAD指針被指向某一版本,而非該分支最新版本,此狀態被稱為頭指針分離。該狀態下只能查看歷史記錄,而不能進行分支操作。進入頭指針分離應當為臨時操作,否則可能會丟失信息。

      標簽

      • git tag -a [TagName] [Commit]:為版本打標簽。若[Commit]省略,則給HEAD打標簽。
      • git tag -d [TagName]:在本地刪除標簽。

      回退

      回退提交

      • git reset [--mode] [Commit]:將HEAD指針回退至指定版本,mode為指定的回退模式:
        • mixed:回退倉庫與暫存區,工作區不變(當mode省略時的默認選項)。

        • soft:僅回退倉庫,工作區和暫存區不變。

        • hard:同時回退倉庫、工作區和暫存區。(慎用!)

      回退文件/文件夾

      • git reset [Commit] -- [Name]:將某一文件回退至指定版本
      • git checkout -- [Name]:從暫存區恢復該文件到工作區
      • git checkout [Commit] -- [Name]:從特定提交中恢復該文件
      • git restore [Options] [Name]:更清晰的恢復文件(推薦替代git checkout)
        • 選項:--source=[Commit]/-s [Commit]從指定提交中恢復內容(默認為HEAD)
        • --staged/-S:將暫存區的內容恢復至工作區
        • --ours:當合并沖突時,恢復為當前分支的版本
        • --theirs:當合并沖突時,恢復為另一分支的版本

      差異對比

      • git diff:工作區與暫存區間差異。
      • git diff HEAD:工作區與最新版本間差異。
      • git diff --cached:查看暫存區與最新版本差異。
      • git diff [ID1] [ID2]:比較兩個版本間差異。
      • git diff [Name] [Name]:比較兩個分支間差異。

      分支

      分支(Branch):每個分支都是獨立的,擁有獨立的分支指針(指向該分支的最新版本)、工作區、暫存區、本地倉庫等。分為本地分支與遠程分支。

      當本地倉庫被初始化時,默認僅具有一個main分支。

      分支的創建、重命名、刪除

      • git branch:查看所有分支,當前所在分支會被以*標識。
        • -r:查看遠程分支
        • -a:查看所有分支
      • git branch [Branch]:創建分支(但不切換)
      • git branch -m [OldName] [NewName]:重命名分支
      • git branch -m [Newname]:重命名當前分支。使用-M選項強制重命名。
      • git branch -d [Branch]:刪除已合并的分支[Branch],使用-D選項進行強制刪除(無論是否合并)

      切換分支

      git checkout

      • git checkout [Branch]HEAD指針切換至該分支的最新提交。
        • git checkout -:切換至前一個分支
      • git checkout -b [Branch]:創建并切換至該分支

      git switch

      • git switch [Branch]:更清晰地切換分支,避免產生歧義(推薦用于替代checkout)
      • git switch -c [Branch]:創建并切換至此分支

      合并分支

      • git merge [Branch]:將分支[Branch]快速合并至當前分支,合并后會產生一次合并提交,提交圖成環狀結構。需手動處理解決沖突,使用git status查看沖突文件。
      • 合并沖突:當兩個分支修改了同一文件的同一部分時,會造成沖突。>>>>>>HEAD下方為當前分支的代碼,<<<<<<[Name]上方為[Name]分支的代碼,======用于分隔兩者。手動編輯處理沖突后使用git add添加至暫存區,使用git merge --continue繼續合并分支。
      • git mergetool:使用工具解決合并沖突
      • git merge --abort:取消合并

      分支的變基

      • git rebase [Branch]:求當前分支與目標分支的LCA(最近公共祖先)版本,將當前分支自LCA版本的下個版本起,全部移植至目標分支的分支指針上,HEAD指針不動。提交圖仍為線性結構。

      遠端倉庫

      遠程倉庫的添加、重命名、刪除

      • git remote:查看本地倉庫的遠端倉庫列表。
        選項-v:查看遠端倉庫的URL
      • git remote add [RemoteName] [RemotePath]:在遠端倉庫列表中添加名為[RemoteName]、地址為[RemotePath]的遠端倉庫。[RemoteName]默認為origin[RemotePath]可為路徑、URL等。
      • git remote show [RemoteName]:查看遠端倉庫詳細信息
      • git remote rm [Remote_Name]:從遠端倉庫列表中刪除該遠端倉庫
      • git remote rename [RemoteOldName] [RemoteNewName]:重命名遠端倉庫
      • git remote set-url [RemoteName] [RemoteNewPath]:更新遠端倉庫路徑

      設置上游分支

      設置上游分支建立了本地分支與遠程分支的聯系。在執行git pull、git push前,必須設置上游分支,否則需在對應操作時候手動通過-u選項設置關聯。

      • git branch -u [RemoteName]/[RemoteBranch] [LocalBranch]:將遠程分支[RemoteName]/[RemoteBranch]設置為本地分支[LocalBranch]上游分支。[LocalBranch]默認為當前分支。

      克隆、拉取、推送

      • git clone [RemoteURL] [SaveName]:完整克隆遠端倉庫(包括所有分支及版本)
        選項:-b [Branch]僅克隆指定分支
        --depth=[N]僅克隆main分支最新的N個版本(淺克隆)。使用參數--branch [branch]淺克隆指定分支。
      • git fetch [RemoteName]:拉取遠端倉庫最新版本,需使用git merge合并到工作區
      • git pull [RemoteName] [RemoteBranch]:拉取遠端倉庫最新版本,合并到本地當前分支工作區(相當于 git fetch + git merge)。若當前分支已設置上游分支,可直接運行 git pull,否則需使用-u選項關聯遠程分支。
      • git push [RemoteName] [LocalBranch]:[RemoteBranch]:將本地的分支版本上傳到遠端倉庫并合并。若當前分支已設置上游分支,可直接運行 git push,否則需使用-u選項關聯遠程分支。使用--tags選項顯式推送所有標簽。
      posted @ 2025-03-24 10:29  椰蘿Yerosius  閱讀(39)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 精品日韩人妻中文字幕| 999精品色在线播放| 狠狠躁天天躁中文字幕无码| 亚洲国产午夜福利精品| 亚洲精品蜜桃久久久久久| 国产精品小视频一区二页| 亚洲欧洲av人一区二区| a男人的天堂久久a毛片| 国产精品高清国产三级囯产AV| 国产午夜精品久久精品电影| 少妇高潮喷潮久久久影院| 甘德县| 国产精品国语对白一区二区| 2019亚洲午夜无码天堂| 国产精品一二二区视在线| 人妻少妇精品无码专区二区| 99精品国产一区二区三| 少妇激情av一区二区三区| 国产精品无码无需播放器| 17岁日本免费bd完整版观看| 欧美综合婷婷欧美综合五月| 皮山县| 亚洲AV日韩AV综合在线观看| 亚洲 制服 丝袜 无码| 陕西省| 亚洲午夜伦费影视在线观看| 久热综合在线亚洲精品| 库尔勒市| 亚洲一区二区三区在线播放无码| 成人永久免费A∨一级在线播放 | 精品自拍偷拍一区二区三区| 人人入人人爱| 国产精品亚洲一区二区z| 免费无码黄网站在线观看| 武定县| 国产精品综合色区av| 国产V日韩V亚洲欧美久久| 久久精品日日躁夜夜躁| 一亚洲一区二区中文字幕| 熟妇人妻av无码一区二区三区 | 日本精品不卡一二三区|