<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          「一勞永逸」一張腦圖帶你掌握Git命令

          共 4579字,需瀏覽 10分鐘

           ·

          2020-10-15 05:19


          關(guān)注?W3Cschool?,每天一篇文章,與你共同成長

          作者丨TianTianUp

          來源丨前端UpUp

          前言

          最近在網(wǎng)易工作之余,遇到Git上面一些問題,趁這次的機會,補一補Git基礎(chǔ)知識。

          腦圖?

          腦圖下載鏈接:

          https://pan.baidu.com/s/1KHEyx4L04VPx8b5KKzvDZg?

          提取碼:Tian

          「本文更多梳理的是Git常用命令,非原理篇,需要這部分知識的可以往下看。」


          一圖解天下?

          首先我們的了解Git通常的操作流程,網(wǎng)上流行的不錯一張圖?

          Git經(jīng)典流程圖

          基本概念

          Git基本命令

          基于上面的圖,我們就有接下來一些概念?

          • 版本庫?.git

            • 當(dāng)我們使用git管理文件時,比如git init時,這個時候,會多一個.git文件,我們把這個文件稱之為版本庫。
            • .git文件另外一個作用就是它在創(chuàng)建的時候,會自動創(chuàng)建master分支,并且將HEAD指針指向master分支。
          • 工作區(qū)

            • 本地項目存放文件的位置
            • 可以理解成圖上的workspace
          • 暫存區(qū) (Index/Stage)

            • 顧名思義就是暫時存放文件的地方,通過是通過add命令將工作區(qū)的文件添加到緩沖區(qū)
          • 本地倉庫(Repository)

            • 通常情況下,我們使用commit命令可以將暫存區(qū)的文件添加到本地倉庫
            • 通常而言,HEAD指針指向的就是master分支
          • 遠(yuǎn)程倉庫(Remote)

            • 舉個例子,當(dāng)我們使用GitHub托管我們項目時,它就是一個遠(yuǎn)程倉庫。
            • 通常我們使用clone命令將遠(yuǎn)程倉庫代碼拷貝下來,本地代碼更新后,通過push托送給遠(yuǎn)程倉庫。

          Git文件狀態(tài)

          • 通常我們需要查看一個文件的狀態(tài)
          git status
          • Changes not staged for commit
            • 表示得大概就是工作區(qū)有該內(nèi)容,但是緩存區(qū)沒有,需要我們git add
          • Changes to be committed
            • 一般而言,這個時候,文件放在緩存區(qū)了,我們需要git commit
          • nothing to commit, working tree clean
            • 這個時候,我們將本地的代碼推送到遠(yuǎn)端即可

          常見命令

          git配置命令

          Git配置命令
          • 列出當(dāng)前配置
          git config --list
          • 列出Repository配置
          git config --local --list
          • 列出全局配置
          git config --global --list
          • 列出系統(tǒng)配置
          git config --system --list

          通過上述的命令,發(fā)現(xiàn)你并沒有配置用戶信息的話,接下來配置一下?

          • 配置用戶名
          git config --global user.name "your name"
          • 配置用戶郵箱
          git config --global user.email "[email protected]"

          分支管理

          Git分支管理
          • 查看本地分支
          git branch
          • 查看遠(yuǎn)程分支
          git branch -r
          • 查看本地和遠(yuǎn)程分支
          git branch -a
          • 從當(dāng)前分支,切換到其他分支
          git checkout // 舉個例子git checkout feature/tiantian
          • 創(chuàng)建并切換到新建分支
          git checkout -b // 舉個例子?git checkout -b feature/tiantian
          • 刪除分支
          git branch -d // 舉個例子?git branch -d feature/tiantian
          • 當(dāng)前分支與指定分支合并
          git merge // 舉個例子?git merge feature/tiantian
          • 查看哪些分支已經(jīng)合并到當(dāng)前分支
          git branch --merged
          • 查看哪些分支沒有合并到當(dāng)前分支
          git branch --no-merged
          • 查看各個分支最后一個提交對象的信息
          git branch -v
          • 刪除遠(yuǎn)程分支
          git push origin -d 
          • 重命名分支
          git branch -m  
          • 拉取遠(yuǎn)程分支并創(chuàng)建本地分支
          git checkout -b 本地分支名x origin/遠(yuǎn)程分支名x
          // 另外一種方式,也可以完成這個操作。git fetch origin :// fetch這個指令的話,后續(xù)會梳理

          fetch指令

          Git命令fetch

          我理解的就是將遠(yuǎn)程倉庫內(nèi)容更新到本地,最近與師姐開發(fā)項目過程中,使用的就是這個命令。

          具體是這樣子的?

          fetch推薦寫法


          git fetch origin :
          • 一般而言,這個origin是遠(yuǎn)程主機名,一般默認(rèn)就是origin。
          • branch-name?你要拉取的分支
          • local-branch-name?通常而言,就是你本地新建一個新分支,將origin下的某個分支代碼下載到本地分支。

          舉個例子?

          git fetch origin feature/template_excellent:feature/template_layout// 你的工作目錄下,就會有feature/template_layout// 一般情況下,我們需要做的就是在這個分支上開發(fā)新需求// 完成代碼后,我們需要做的就是上傳我們的分支

          fetch其他寫法

          • 將某個遠(yuǎn)程主機的更新,全部取回本地。
          git fetch <遠(yuǎn)程主機名>
          • 這樣子的話,取回的是所有的分支更新,如果想取回特定分支,可以指定分支名?
          git fetch <遠(yuǎn)程主機名> <分支名>
          • 當(dāng)你想將某個分支的內(nèi)容取回到本地下某個分支的話,如下?
          git fetch origin :// 等價于?git fetch origin master:

          花式撤銷

          Git花式撤銷
          • 撤銷「工作區(qū)」修改

            • git checkout --
          • 暫存區(qū)文件撤銷 (不覆蓋工作區(qū))

            • git reset HEAD
          • 版本回退

            • git reset --(soft | mixed | hard ) ?< HEAD ~(num) > |

            • 指令作用范圍
              --hard回退全部,包括HEAD,index,working tree
              --mixed回退部分,包括HEAD,index
              --soft只回退HEAD

          工作區(qū)命令


          狀態(tài)查詢

          • 查看狀態(tài)
            • git status
          • 查看歷史操作記錄
            • git reflog
          • 查看日志
            • git log

          文檔查詢

          • 展示Git命令大綱
            • git help (--help)
          • 展示Git命令大綱全部列表
            • git help -a
          • 展示具體命令說明手冊
            • git help

          文件暫存

          Git命令文件暫存
          • 添加改動到stash

            • git stash save -a “message”
          • 刪除暫存

            • git stash drop
          • 查看stash列表

            • git stash list
          • 刪除全部緩存

            • git stash clear
          • 恢復(fù)改動

            • git stash pop

          差異比較

          Git文件比較
          • 比較工作區(qū)與緩存區(qū)
            • git diff
          • 比較緩存區(qū)與本地庫最近一次commit內(nèi)容
            • git diff -- cached
          • 比較工作區(qū)與本地最近一次commit內(nèi)容
            • git diff HEAD
          • 比較兩個commit之間差異
            • git diff

          分支命名

          Git分支管理規(guī)范

          「master分支」

          1. 主分支,用于部署生產(chǎn)環(huán)境的分支,確保穩(wěn)定性。
          2. master分支一般由develop以及hotfix分支合并,任何情況下都不能直接修改代碼。

          「develop 分支」

          1. develop為開發(fā)分支,通常情況下,保存最新完成以及bug修復(fù)后的代碼。
          2. 開發(fā)新功能時,feature分支都是基于develop分支下創(chuàng)建的。

          「feature分支」

          1. 開發(fā)新功能,基本上以develop為基礎(chǔ)創(chuàng)建feature分支。
          2. 分支命名:feature/ 開頭的為特性分支, 命名規(guī)則: feature/user_module、 feature/cart_module。

          **這點我深有體會,我在網(wǎng)易,mentor就是這么教我的,**通常建一個feature分支。

          「release分支」

          1. release 為預(yù)上線分支,發(fā)布提測階段,會release分支代碼為基準(zhǔn)提測。

          「hotfix分支」

          1. 分支命名:hotfix/ 開頭的為修復(fù)分支,它的命名規(guī)則與 feature 分支類似。
          2. 線上出現(xiàn)緊急問題時,需要及時修復(fù),以master分支為基線,創(chuàng)建hotfix分支,修復(fù)完成后,需要合并到master分支和develop分支。

          參考來著:稻草叔叔


          基本操作

          有了上述的基本了解后,那么我們就來看看整體的一個流程吧。

          • 創(chuàng)建本地倉庫 git init

            ?

            git init

            ?
          • 鏈接本地倉庫與遠(yuǎn)端倉庫

            ?

            git remote add ?origin

            origin默認(rèn)是遠(yuǎn)端倉庫別名 ?url 可以是「可以使用https或者ssh的方式新建」

            ?
          • 檢查配置信息

            • git config --list
          • Git user name 與email

            ?

            git config --global user.name "yourname"

            git config --global user.email ?"your_email"

            ?
          • 生成SSH密鑰

            ?

            ssh-keygen -t rsa -C "這里換上你的郵箱"

            cd ~/.ssh 里面有一個文件名為id_rsa.pub,把里面的內(nèi)容復(fù)制到git庫的我的SSHKEYs中

            ?
          • 常看遠(yuǎn)端倉庫信息

            • git remote -v
          • 遠(yuǎn)端倉庫重新命名

            • git remote rename old new
          • 提交到緩存區(qū)

            • git add . ?全部上傳到緩存區(qū)
            • git add指定文件
          • 提交到本地倉庫

            • git commit -m 'some message'
          • 提交遠(yuǎn)程倉庫

            • git push <遠(yuǎn)程主機名> <本地分支名>:<遠(yuǎn)程分支名>
          • 查看分支

            • git ?branch
          • 創(chuàng)建新分支

            • git branch
          • 切換分支

            • git checkout
          • 創(chuàng)建分支并切換

            • git checkout -b
          • 刪除分支

            • git branch -d
          • 刪除遠(yuǎn)程分支

            • git push -d
          • 切換分支

            • git checkout

          忽略文件 .gitignore

          這個文件的作用,會去忽略一些不需要納入Git管理這種,我們也不希望出現(xiàn)在未跟蹤文件列表。

          那么我們來看看如何配置該文件信息。

          # 此行為注釋 會被Git忽略
          # 忽略 node_modules/ 目錄下所有的文件node_modules

          # 忽略所有.vscode結(jié)尾的文件.vscode
          # 忽略所有.md結(jié)尾的文件*.md
          # 但README.md 除外!README.md
          # 會忽略 doc/something.txt 但不會忽略doc/images/arch.txtdoc/*.txt
          # 忽略 doc/ 目錄下所有擴展名為txt文件
          doc/**/*.txt

          參考

          • git基本操作,一篇文章就夠了!
          • Git 常用操作總結(jié)
          • 您必須知道的 Git 分支開發(fā)規(guī)范
          • 如何優(yōu)雅地使用 Git
          • 優(yōu)雅的提交你的 Git Commit Message
          • 詳解git pull和git fetch的區(qū)別
          • 十分鐘的時間,武裝你的代碼庫
          • 「備忘錄」60+Git常用命令行

          -End-


          W3Cschool注冊會員突破200萬啦~


          編程獅(W3Cschool


          學(xué)編程,從W3Cschool開始

          微信掃描二維碼,關(guān)注公眾號

          點擊分享」「」「在看
          說不定你的朋友也喜歡讀▼▼▼
          瀏覽 54
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产九一视频 | 香蕉污视频 | 人人插人人操人人射 | 污污污污污网站 | 亚洲免费观看视频 |