<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操作這一篇就夠用了

          共 5175字,需瀏覽 11分鐘

           ·

          2021-07-29 13:09

          git基礎(chǔ)入門

          • Git是一款免費(fèi)、開源的分布式 版本控制系統(tǒng) ,用于敏捷高效地處理任何或小或大的項(xiàng)目。

          • Git 是 Linus Torvalds 為了幫助管理 Linux 內(nèi)核開發(fā)而開發(fā)的一個開放源碼的版本控制軟件。

          git的安裝

          • 下載地址 https://git-scm.com/

          • 注意:

            • 不要安裝在中文目錄

            • 不要使用桌面管理軟件

            • 安裝很簡單,一直下一步即可。在任意的目錄下右鍵,能看到菜單, 就表示安裝成功了。

          git使用

          • 使用git的兩種方式

            • git gui,即圖形化界面的方式

            • git bash,命令行的方式(推薦)

          • git倉庫會分成三個區(qū)

            • 工作區(qū):我們書寫代碼的地方,工作的目錄就叫工作區(qū)。

            • 暫存區(qū):暫時存儲的區(qū)域,在git中,代碼無法直接從工作區(qū)提交到倉庫區(qū),而是需要先從工作區(qū)添加到暫存區(qū),然后才能從暫存區(qū)提交到倉庫區(qū)。暫存區(qū)的目的是避免誤操作。

            • 本地倉庫區(qū):將保存在暫存區(qū)域的內(nèi)容永久轉(zhuǎn)儲到 Git 倉庫中,生成版本號。生成版本號之后,就可以任何的回退到某一個具體的版本。

          • git基本命令

            • git init 作用:初始化git倉庫,想要使用git對某個項(xiàng)目進(jìn)行管理,需要git init進(jìn)行初始化
          • git初始化注意點(diǎn)

            • 要對某個項(xiàng)目使用git進(jìn)行管理,需要使用git init命令初始化git倉庫git init會在當(dāng)前目錄生成一個隱藏文件夾 .git 不要去修改這個文件夾下的任意東西。
          • 初始化倉庫, 在當(dāng)前目錄下生成一個隱藏文件夾.git

            • git init

            • git add 作用:將文件由 工作區(qū) 添加到 暫存區(qū),在git中,文件無法直接從工作區(qū)直接添加到倉庫區(qū),必須先從工作區(qū)添加到暫存區(qū),再從暫存區(qū)添加到倉庫區(qū)。

            • 命令:git add 文件名/目錄名

          • 將index.html添加到暫存區(qū)

            • git add index.html
          • 將css目錄下所有的文件添加到暫存區(qū)

            • git add css
          • 將當(dāng)前目錄下所有的js文件添加到暫存區(qū)

            • git add *.js
          • 添加當(dāng)前目錄下所有的文件

            • git add .
            • git add -A
            • git add --all
            • git commit 作用:將文件由 暫存區(qū) 添加到 倉庫區(qū),生成版本號
          • 將文件從暫存區(qū)提交到倉庫

            • git commit -m "提交說明"
          • 如果不寫提交說明,會進(jìn)入vi編輯器,沒有寫提交說明,是提交不成功的。

            • git commit   # 需要使用vi輸入內(nèi)容
          • 如果是一個已經(jīng)暫存過的文件,可以快速提交,如果是未追蹤的文件,那么命令將不生效。

            • git commit -a -m '提交說明'
          • 修改最近的一次提交說明, 如果提交說明不小心輸錯了,可以使用這個命令

            • git config  user.name 你的目標(biāo)用戶名
            • git config  user.email 你的目標(biāo)郵箱名
            • git commit --amend -m "提交說明"
            • git config配置
            • 如果是第一次提交,需要配置提交者信息,推薦和github的賬號郵箱一致
          • 使用--global參數(shù),配置全局的用戶名和郵箱,只需要配置一次即可。推薦配置github的用戶名和密碼

          • 查看配置信息

            • git config --list
            • git status 作用:查看文件的狀態(tài)
          • 命令:git status

            • 紅色表示工作區(qū)中的文件需要提交

            • 綠色表示暫存區(qū)中的文件需要提交

          • 命令:git stauts -s 簡化日志輸出格式

          • 命令:git log 作用:查看提交日志

          • 命令:git log 查看提交的日志

          • 命令:git log --oneline 簡潔的日志信息

          • git對比

            • git diff c265262 de4845b
            • git diff HEAD
            • git diff --cached
            • git diff
            • git diff

            • git diff可以查看每次提交的內(nèi)容的不同

            • 查看工作區(qū)與暫存區(qū)的不同

            • 查看暫存區(qū)與倉庫區(qū)的不同

            • 查看工作區(qū)與倉庫區(qū)的不同,HEAD表示最新的那次提交

            • 查看兩個版本之間的不同

          • git重置

            • git reset 作用:版本回退,將代碼恢復(fù)到已經(jīng)提交的某一個版本中。

            • git reset --hard 版本號 將代碼回退到某個指定的版本(版本號只要有前幾位即可)

            • git reset --hard head~1將版本回退到上一次提交

              ~1:上一次提交

              ~2:上上次提交

              ~0:當(dāng)前提交

          • 關(guān)于參數(shù) --hard的解釋

            • git reset 的參數(shù)可以是以下三個值:
            • git reset --soft 版本號  :只重置倉庫區(qū)
            • git reset --mixed 版本號 :重置倉庫區(qū)和暫存區(qū)【默認(rèn)】
            • git reset --hard  版本號 :重置倉庫區(qū)和暫存區(qū)和工作區(qū)。
            • git reset 版本號         : 效果與--mixed一致
            • 當(dāng)使用了git reset命令后,版本會回退,使用git log只能看到當(dāng)前版本之前的信息。使用git reflog可以查看所有的版本信息

          git忽視文件

          • 在倉庫中,有些文件是不想被git管理的,比如數(shù)據(jù)的配置密碼、寫代碼的一些思路等。git可以通過配置從而達(dá)到忽視掉一些文件,這樣這些文件就可以不用提交了。

          • 在倉庫的根目錄創(chuàng)建一個.gitignore的文件,文件名是固定的。

          • 將不需要被git管理的文件路徑添加到.gitignore中

          • 忽視idea.txt文件

            • idea.txt
          • 忽視.gitignore文件

            • .gitignore
          • 忽視css下的index.js文件

            • css/index.js
          • 忽視css下的所有的js文件

            • css/*.js
          • 忽視css下的所有文件

            • css/.
          • 忽視css文件夾

            • css

          git分支操作

          • 分支就是科幻電影里面的平行宇宙,當(dāng)你正在電腦前努力學(xué)習(xí)Git的時候,另一個你正在另一個平行宇宙里努力學(xué)習(xí)SVN。

          如果兩個平行宇宙互不干擾,那對現(xiàn)在的你也沒啥影響。不過,在某個時間點(diǎn),兩個平行宇宙合并了,結(jié)果,你既學(xué)會了Git又學(xué)會了SVN!

          • 為什么要有分支?》如果你要開發(fā)一個新的功能,需要2周時間,第一周你只能寫50%代碼,如果此時立即提交,代碼沒寫完,不完整的代碼會影響到別人無法工作。如果等代碼寫完再提交,代碼很容易丟失,風(fēng)險很大。有了分支,你就可以創(chuàng)建一個屬于自己的分支,別人看不到,也不影響別人,你在自己的分支上工作,提交到自己的分支上,等到功能開發(fā)完畢,一次性的合并到原來的分支。這樣既安全,又不影響他人工作。在工作過程中,經(jīng)常會碰到多任務(wù)并行開發(fā) 的情況,使用分支就能很好的避免任務(wù)之間的影響。

          • 其他版本工具比如svn,cvs中也有分支這個概念,但是這些工具中的分支操作非常的慢,形同擺設(shè)。

          • git分支命令

            • git branch -d 分支名稱 可以刪除分支
            • git checkout -b 分支名稱 創(chuàng)建并切換分支

            • 切換分支會做兩件事情

            • 創(chuàng)建一個新分支

            • 把head指針指向當(dāng)前的分支

            • git checkout 分支名稱切換分支 HEAD指針指向了另一個分支

            • 在當(dāng)前分支的任何操作,都不會影響到其他的分支,除非進(jìn)行了分支合并。

            • 提交代碼時,會生產(chǎn)版本號,當(dāng)前分支會指向最新的版本號。

            • git branch可以查看所有的分支,

            • 在當(dāng)前分支的前面會有一個*

            • 在git中,有一個特殊指針HEAD,永遠(yuǎn)會指向當(dāng)前分支

            • git branch 分支名稱創(chuàng)建分支,分支中的代碼,在創(chuàng)建時與當(dāng)前分支的內(nèi)容完全相同。
            • 在git中,分支實(shí)質(zhì)上僅僅是一個指針,每次代碼提交后,這個分支指針就會向后移動,保證一直指向最后一次提交的的版本。git中使用HEAD指向當(dāng)前分支

            • 創(chuàng)建分支

            • git在第一次提交時,就有了一個叫master的主分支。

            • git branch dev,創(chuàng)建了一個叫做dev的分支

            • 查看分支

            • 切換分支

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

            • 刪除分支

          注意:不能在當(dāng)前分支刪除當(dāng)前分支,需要切換到其他分支才能刪除。

          注意:master分支是可以刪除的,但是不推薦那么做。

          • 合并分支
            • 對于同一個文件,如果有多個分支需要合并時,容易出現(xiàn)沖突。

            • 合并分支時,如果出現(xiàn)沖突,只能手動處理,再次提交,一般的作法,把自己的代碼放到?jīng)_突代碼的后面即可。

            • git merge 分支名稱 將其他分支的內(nèi)容合并到當(dāng)前分支。

            • 在master分支中執(zhí)行g(shù)it merge dev 將dev分支中的代碼合并到master分支

            • git合并沖突

          git遠(yuǎn)程倉庫

          • github與git

            • gitHub是一個面向開源及私有軟件項(xiàng)目的托管平臺,因?yàn)橹恢С謌it 作為唯一的版本庫格式進(jìn)行托管,故名gitHub。
            • github免費(fèi),代碼所有人都能看到,但是只有你自己能修改。付費(fèi)的可以隱藏。
            • 創(chuàng)建git項(xiàng)目時,不能有中文。
            • git與github沒有直接的關(guān)系。

            • git是一個版本控制工具。

            • github是一個代碼托管平臺,開源社區(qū),是git的一個遠(yuǎn)程代碼倉庫。

          • git clone

            • 作用:克隆遠(yuǎn)程倉庫的代碼到本地

            • git clone [遠(yuǎn)程倉庫地址]

            • git clone git://github.com/jepsongithub/test.git會在本地新建一個test文件夾,在test中包含了一個.git目錄,用于保存所有的版本記錄,同時test文件中還有最新的代碼,你可以直接進(jìn)行后續(xù)的開發(fā)和使用。

            • git克隆默認(rèn)會使用遠(yuǎn)程倉庫的項(xiàng)目名字,也可以自己指定。需要是使用以下命令:git clone [遠(yuǎn)程倉庫地址] [本地項(xiàng)目名]

          • git push

            • 作用:將本地倉庫中代碼提交到遠(yuǎn)程倉庫

            • git push 倉庫地址 master 在代碼提交到遠(yuǎn)程倉庫,注意master分支必須寫,不能省略

            • 例子:git push XXX master 如果第一次使用,需要填寫github的用戶名和密碼

          • git pull

            • 作用:將遠(yuǎn)程的代碼下載到本地

          注意:通常在push前,需要先pull一次。

          • 獲取遠(yuǎn)程倉庫的更新,并且與本地的分支進(jìn)行合并

            • git pull
            • git remote
            • 每次push操作都需要帶上遠(yuǎn)程倉庫的地址,非常的麻煩,我們可以給倉庫地址設(shè)置一個別名
          • 給遠(yuǎn)程倉庫設(shè)置一個別名

            • git remote add 倉庫別名 倉庫地址
            • git remote add why [email protected]:XXX/test.git
          • 刪除why這個別名

            • git remote remove why
          • git clone的倉庫默認(rèn)有一個origin的別名

          SSH免密碼登陸

          • git支持多種數(shù)據(jù)傳輸協(xié)議:

            • https協(xié)議:https://github.com/whylisa/test.git 需要輸入用戶名和密碼

            • ssh協(xié)議:[email protected]:whylisa/test.git 可以配置免密碼登錄

          • 每次push或者pull代碼,如果使用https協(xié)議,那么都需要輸入用戶名和密碼進(jìn)行身份的確認(rèn),非常麻煩。

            github為了賬戶的安全,需要對每一次push請求都要驗(yàn)證用戶的身份,只有合法的用戶才可以push

            使用ssh協(xié)議,配置ssh免密碼,可以做到免密碼往github推送代碼

          • SSH免密碼登錄配置

          注意:這些命令需要在bash中敲

          • 創(chuàng)建SSH Key:ssh-keygen -t rsa

          • 在文件路徑 C:\用戶\當(dāng)前用戶名\ 找到 .ssh 文件夾

          • 文件夾中有兩個文件:

            • 私鑰:id_rsa

            • 公鑰:id_rsa.pub

          • 在 github -> settings -> SSH and GPG keys頁面中,新創(chuàng)建SSH key

          • 粘貼 公鑰 id_rsa.pub 內(nèi)容到對應(yīng)文本框中

          • 在github中新建倉庫或者使用現(xiàn)在倉庫,拿到[email protected]:用戶名/倉庫名.git

          • 此后,再次SSH方式與github“通信”,不用輸入密碼確認(rèn)身份了

          github-pages的使用

          • github 允許創(chuàng)建一個非常特殊的一個倉庫用戶名.github.io 比如 why.github.io`

          • clone下來新建index.html頁面內(nèi)容提交

          • 訪問用戶名.github.io 即why.github.io

          結(jié)語

          • 篇幅比較長,基本涵蓋了我們?nèi)粘5牟僮?,可以收藏下來,忘了的時候看下
          • 如果覺得這篇文章還不錯,來個分享、點(diǎn)贊、在看三連吧,讓更多的人也看到~

          • 關(guān)注公眾號前端要努力,定期為你推送新鮮干貨好文。


          • 3.六點(diǎn)起床學(xué)習(xí)俱樂部


          瀏覽 27
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <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>
                  国产在线日韩在线 | 高清无码爱爱视频 | 婷婷综合久久五月天丁香 | 黄色毛片女人操逼 | 特一级黄色视频 |