<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>

          我敢打賭,90%的測(cè)試人員都不理解Git

          共 3724字,需瀏覽 8分鐘

           ·

          2021-05-11 04:24


          關(guān)注「開(kāi)源Linux」,選擇“設(shè)為星標(biāo)”
          回復(fù)「學(xué)習(xí)」,有我為您特別篩選的學(xué)習(xí)資料~

          01

          概念



          1.1 四個(gè)工作區(qū)域

          Git本地有四個(gè)工作區(qū)域:工作目錄(Working Directory)、暫存區(qū)(Stage/Index)、資源庫(kù)(Repository或Git Directory)、git倉(cāng)庫(kù)(Remote Directory)。文件在這四個(gè)區(qū)域之間的轉(zhuǎn)換關(guān)系如下:



          Workspace:工作區(qū),就是你平時(shí)存放項(xiàng)目代碼的地方

          Index / Stage:暫存區(qū),用于臨時(shí)存放你的改動(dòng),事實(shí)上它只是一個(gè)文件,保存即將提交到文件列表信息

          Repository:倉(cāng)庫(kù)區(qū)(或版本庫(kù)),就是安全存放數(shù)據(jù)的位置,這里面有你提交到所有版本的數(shù)據(jù)。其中HEAD指向最新放入倉(cāng)庫(kù)的版本

          Remote:遠(yuǎn)程倉(cāng)庫(kù),托管代碼的服務(wù)器,可以簡(jiǎn)單的認(rèn)為是你項(xiàng)目組中的一臺(tái)電腦用于遠(yuǎn)程數(shù)據(jù)交換


          1.2 工作流程

          git的工作流程一般是這樣的

          1、在工作目錄中添加、修改文件;

          2、將需要進(jìn)行版本管理的文件放入暫存區(qū)域;

          3、將暫存區(qū)域的文件提交到git倉(cāng)庫(kù)。

          因此,git管理的文件有三種狀態(tài):已修改(modified),已暫存(staged),已提交(committed)

          工作區(qū)-----》暫存區(qū)---》倉(cāng)庫(kù)


          1.3 文件的四種狀態(tài)

          版本控制就是對(duì)文件的版本控制,要對(duì)文件進(jìn)行修改、提交等操作,首先要知道文件當(dāng)前在什么狀態(tài),不然可能會(huì)提交了現(xiàn)在還不想提交的文件,或者要提交的文件沒(méi)提交上。


          GIT不關(guān)心文件兩個(gè)版本之間的具體差別,而是關(guān)心文件的整體是否有改變,若文件被改變,在添加提交時(shí)就生成文件新版本的快照,而判斷文件整體是否改變的方法就是用SHA-1算法計(jì)算文件的校驗(yàn)和。


          Untracked:未跟蹤, 此文件在文件夾中, 但并沒(méi)有加入到git庫(kù), 不參與版本控制. 通過(guò)git add 狀態(tài)變?yōu)镾taged

          untracked----->Staged:git add file(工作區(qū)-暫存區(qū))

          unmodify----->untracked: git rm --cached file:移出版本庫(kù)(倉(cāng)庫(kù)--->工作區(qū))

          unmodify----->modified: 修改文件(暫存區(qū))

          modified---->ummodify:取消修改,git checkout file(工作區(qū)--->暫存區(qū))

          modified------>staged--->unmodify(倉(cāng)庫(kù)):git add file--->git commit,保存到倉(cāng)庫(kù)

          unmodify(倉(cāng)庫(kù))------>modified:git reset HEAD file從倉(cāng)庫(kù)中取消暫存,放在暫存區(qū)

          Unmodify:文件已經(jīng)入庫(kù)(版本庫(kù)), 未修改, 即版本庫(kù)中的文件快照內(nèi)容與文件夾中完全一致. 這種類(lèi)型的文件有兩種去處, 如果它被修改, 而變?yōu)镸odified.

          如果使用git rm移出版本庫(kù), 則成為Untracked文件

          Modified:文件已修改(工作區(qū)), 僅僅是修改, 并沒(méi)有進(jìn)行其他的操作. 這個(gè)文件也有兩個(gè)去處, 通過(guò)git add可進(jìn)入暫存staged狀態(tài), 

          返回到unmodify狀態(tài), 這個(gè)git checkout即從庫(kù)中取出文件, 覆蓋當(dāng)前修改

          Staged: 暫存狀態(tài),執(zhí)行git commit則將修改同步到庫(kù)中, 這時(shí)庫(kù)中的文件和本地文件又變?yōu)橐恢? 文件為Unmodify狀態(tài). 執(zhí)行g(shù)it reset HEAD filename取消暫存,文件狀態(tài)為Modified


          新建文件--->Untracked

          使用add命令將新建的文件加入到暫存區(qū)--->Staged

          使用commit命令將暫存區(qū)的文件提交到本地倉(cāng)庫(kù)--->Unmodified

          如果對(duì)Unmodified狀態(tài)的文件進(jìn)行修改---> modified

          如果對(duì)Unmodified狀態(tài)的文件(倉(cāng)庫(kù))進(jìn)行remove操作--->Untracked

          02

          四個(gè)區(qū)域常用命令



          2.1 新建代碼庫(kù)

          #在當(dāng)前目錄新建一個(gè)Git代碼庫(kù)

          git init

          #新建一個(gè)目錄,將其初始化為Git代碼庫(kù)

          git init [project-name]

          #下載一個(gè)項(xiàng)目和它的整個(gè)代碼歷史

          git clone [url]


          2.2 查看文件狀態(tài)

          #查看指定文件狀態(tài)

          git status [filename]

          #查看所有文件狀態(tài)

          git status


          2.3 工作區(qū)<-->暫存區(qū)

          #添加指定文件到暫存區(qū)

          git add [file1] [file2] ...

          #添加指定目錄到暫存區(qū),包括子目錄

          git add [dir]

          #添加當(dāng)前目錄的所有文件到暫存區(qū)

          git add .

          #當(dāng)我們需要刪除暫存區(qū)或分支上的文件, 同時(shí)工作區(qū)也不需要這個(gè)文件了, 可以使用

          git rm file_path

          #當(dāng)我們需要?jiǎng)h除暫存區(qū)或分支上的文件, 但本地(工作區(qū))又需要使用, 這個(gè)時(shí)候直接push那邊這個(gè)文件就沒(méi)有,如果push之前重新add那么還是會(huì)有。

          git rm --cached file_path


          2.4 暫存區(qū)---版本庫(kù)

          #將暫存區(qū)-->資源庫(kù)(版本庫(kù))

          git commit -m '該次提交說(shuō)明'

          #加了【分支名】 +文件名  則表示從分支名為所寫(xiě)的分支名中拉取文件 并覆蓋工作區(qū)里的文件

          git checkout 分支名 文件名

          #移除不必要的添加到暫存區(qū)的文件

          git reset HEAD 文件名

          #去掉上一次的提交(會(huì)直接變成add之前狀態(tài)) 

          git reset HEAD^

          #去掉上一次的提交(變成add之后,commit之前狀態(tài))

          git reset --soft  HEAD^


          2.5 遠(yuǎn)程操作

          #取回遠(yuǎn)程倉(cāng)庫(kù)的變化,并與本地分支合并

          git pull

          #上傳本地指定分支(資源庫(kù))到遠(yuǎn)程倉(cāng)庫(kù)

          git push 遠(yuǎn)程倉(cāng)庫(kù)url地址


          2.6 其它常用命令

          #顯示當(dāng)前的Git配置

          git config --list

          #編輯Git配置文件

          git config -e [--global]

          #初次commit之前,需要配置用戶郵箱及用戶名,使用以下命令:

          git config --global user.email "[email protected]"

          git config --global user.name "Your Name"


          03

          實(shí)際git在pycharm使用



          1 配置用戶信息:必須的操作


          *** Please tell me who you are.

          Run

          git config --global user.email "[email protected]"

          git config --global user.name "Your Name"

          to set your account's default identity.

          Omit --global to set the identity only in this repository.

          fatal: unable to auto-detect email address (got 'yujian01@gongyun.(none)'

          在pycharm下的command運(yùn)行

          git config –global user.email  “yujian01@gongyun.(none)”

          git config –global user.name “yujian01”


          2 在 terminal終端使用

          git init:初始化git項(xiàng)目目錄

          git add . : 添加所有文件到變更列表(注意有個(gè)點(diǎn))

          git commit -m "首次提交":

          git remote add origin https://github.com/yujian-001/yujian.git:首次提交需要關(guān)聯(lián)遠(yuǎn)程倉(cāng)庫(kù),origin--起源,給一個(gè)遠(yuǎn)程服務(wù)器的路徑

          git push -u origin master:推送到遠(yuǎn)端(origin)master分,頁(yè)面會(huì)彈出Git登陸頁(yè)面,此時(shí)需要輸入用戶名和密碼

          git push https://github.com/yujian-001/yujian.git:后面在提交,直接將文件上傳到遠(yuǎn)程倉(cāng)庫(kù)(上傳)

          git clone https://github.com/yujian-001/yujian.git:克隆文件,將git遠(yuǎn)程倉(cāng)庫(kù)的文件克隆到本地工作目錄(任意的路徑)

          轉(zhuǎn)載自:http://navo.top/YNjINz

          關(guān)注「開(kāi)源Linux」加星標(biāo),提升IT技能

          瀏覽 48
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  色自拍| 国产一级婬乱片免费 | 操美女91 | 精品国产第六区 | 中国极品少妇XXX |