乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Windows下Git的使用

       頭號(hào)碼甲 2022-01-30

      Git官網(wǎng):https:///

      一、Git下載

      官網(wǎng)首頁(yè)下載,當(dāng)前最新版本:2.24.1

       本人下載的是Git for Windows版本:Git-2.24.1.2-64-bit.exe

      二、安裝

      基本上按照默認(rèn)選項(xiàng)安裝即可。

       安裝成功后在開(kāi)始菜單生成Git目錄和3個(gè)子菜單。

       

      Git Bash:一個(gè)封裝過(guò)的cmd命令行,并在其中加入了一些新的命令與功能。(linux風(fēng)格)
      Git CMD(Deprecated):cmd命令行界面,提示已棄用。(windows風(fēng)格)
      Git GUI:可視化圖形界面。

      三、Git工作流程

      1、工作流程圖

       

      Workspace:工作區(qū),電腦里能看到的目錄
      Index/Stage:暫存區(qū),存放在.git/index中,所以暫存區(qū)有時(shí)也叫作索引(index)。
      Repository:版本庫(kù)(本地倉(cāng)庫(kù)),工作區(qū)的隱藏目錄.git
      Remote:遠(yuǎn)程倉(cāng)庫(kù),托管代碼的服務(wù)器

      2、工作區(qū)之間關(guān)系和命令

      3、Git常用命令速查表

      四、設(shè)置自己的用戶名和郵箱

      打開(kāi)Git Bash,界面如下:

       

      先后輸入下面2條命令并回車:

      git config --global user.name "用戶名"
      git config --global user.email "郵箱"

      五、創(chuàng)建版本庫(kù)(repository)

      1、執(zhí)行cd d:命令進(jìn)入d盤

      2、執(zhí)行mkdir gitRepo命令在d盤創(chuàng)建目錄gitRepo

      3、執(zhí)行pwd命令可以查看當(dāng)前目錄

      4、執(zhí)行g(shù)it init命令把gitRepo目錄變成Git管理的版本庫(kù)

       

      六、Git的基本操作

      1、提交版本庫(kù)、查看狀態(tài)等

      (1)在d:/gitRepo手動(dòng)建立文件test.txt,內(nèi)容為“第1行”;
      (2)打開(kāi)Git Bash執(zhí)行cd d:/gitRepo進(jìn)入此目錄;
      (3)先后執(zhí)行git addgit commit命令,把文件提交到暫存區(qū),再把暫存區(qū)提交到版本庫(kù);
      (4)執(zhí)行git status查看狀態(tài),git提示工作區(qū)是干凈的,沒(méi)有什么需要提交;
      (5)編輯文件test.txt,加入一行內(nèi)容“第2行”;
      (6)執(zhí)行g(shù)it status查看狀態(tài),git提示文件被修改過(guò)了,但還沒(méi)提交。使用git add <file>...提交,使用git restore <file>...取消修改;
      (7)執(zhí)行git diff test.txt,比較工作區(qū)和暫存區(qū);(如果使用git diff HEAD test.txt則是比較工作區(qū)和版本庫(kù))

       

      2、版本回退(接上面例子)

      (1)先后執(zhí)行g(shù)it add和git commit命令
      (2)使用git log查看提交歷史,也可使用git log --pretty=oneline簡(jiǎn)化輸出
      18b6a...和a8a4d...是版本號(hào),Git用HEAD表示當(dāng)前版本,即18b6a...,上一次版本是HEAD^,上上一個(gè)版本就是HEAD^^,也可以用數(shù)字表示,如HEAD~2
      (3)使用git reset --hard HEAD^還原到上一個(gè)版本,執(zhí)行行命令后打開(kāi)test.txt可看到內(nèi)容被還原了
      (4)假設(shè)第(3)是誤操作,想回到它之前的歷史,則可使用git reset --hard 18b6a(版本號(hào)不需寫全)
      (5)版本號(hào)也可使用命令git reflog查詢

       

      3、撤銷修改(接上面例子)

      (1)編輯文件test.txt,加入一行內(nèi)容“第3行”;
      (2)此時(shí)還沒(méi)添加到暫存區(qū),可使用git checkout -- test.txt撤回工作區(qū)的修改
      (3)編輯文件test.txt,加入一行內(nèi)容“第3行”,并使用git add添加到暫存區(qū);
      (4)此時(shí)文件已添加到暫存區(qū),可使用git reset HEAD test.txt撤銷暫存區(qū)的修改,然后再使用git checkout -- test.txt撤回工作區(qū)的修改;

       

      4、刪除文件的還復(fù)(接上面例子)

      刪除也是一種修改,刪除的方式有2種:
      如果使用rm相當(dāng)于在資源管理器里面直接刪除,只刪除工作區(qū)的文件,可以直接使用checkout還原;
      如果使用git rm則是刪除工作區(qū)和暫存區(qū)的文件,需要先使用reset,再使用checkout還原(只用這個(gè)會(huì)報(bào)錯(cuò));

      備注:如果想徹底刪除文件,則git rm后需要git commit。

       七、GitHub配置SSH Key

      在用github管理項(xiàng)目的時(shí)候,可使用https url和SSH url兩種方式克隆到本地。

      https url和SSH url區(qū)別:
      (1)使用https url克隆,只需要復(fù)制https url,然后到git Bash里面直接用clone命令克隆到本地就好了;可以隨意克隆github上的項(xiàng)目;在push時(shí)需要驗(yàn)證用戶名和密碼。
      (2)使用SSH url克隆需要是要克隆的項(xiàng)目的擁有者或管理員,且需要先添加 SSH key 。SSH 在push的時(shí)候,不需要輸入用戶名,如果配置SSH key的時(shí)候設(shè)置了密碼,則需要輸入密碼,否則直接是不需要輸入密碼的。

      GitHub配置SSH Key的流程:
      1、設(shè)置自己的用戶名和郵箱(見(jiàn)上面)
      2、創(chuàng)建一個(gè) SSH key
      打開(kāi)Git Bash,執(zhí)行命令:ssh-keygen -t rsa -C "自己的郵箱地址",
      過(guò)程中會(huì)提示輸入文件名,直接按回車用默認(rèn)文件名,之后提示輸入密碼,按回車表示不需要輸入密碼。

      在用戶主目錄下會(huì)生成id_rsa和id_rsa.pub兩個(gè)文件,id_rsa是私鑰(不能泄露),id_rsa.pub是公鑰。

       

      3、登陸GitHub ->右上角頭像處選擇“Settings”-> SSH and GPG keys -> New SSH key ->
      Title隨便寫,在Key文本框里粘貼id_rsa.pub文件的內(nèi)容 -> 點(diǎn)擊“Add SSH key”保存。

       

      保存后如下:

       

       4、測(cè)試SSH key

      輸入ssh -T git@github.com,返回一段警告信息,輸入yes即可。

       

       因?yàn)閯?chuàng)建SSH key是沒(méi)有設(shè)置密碼,所以這里不用輸入密碼。

       八、GitHub倉(cāng)庫(kù)的操作

      1、GitHub創(chuàng)建Git倉(cāng)庫(kù)

      在本地創(chuàng)建了一個(gè)Git倉(cāng)庫(kù),同步到GitHub倉(cāng)庫(kù)上,這樣別人可以通過(guò)GitHub倉(cāng)庫(kù)來(lái)協(xié)作。
      (1)登陸GitHub創(chuàng)建倉(cāng)庫(kù)

      登陸GitHub ->右上角頭像處選擇“Your repositories”-> New -> 在“Repository name”下面輸入名稱,如gitRepo -> 點(diǎn)擊“Create repository”提交。

      (2)把本地倉(cāng)庫(kù)關(guān)聯(lián)到GitHub倉(cāng)庫(kù)

      git remote add origin git@github.com:jlccn/gitRepo.git

       

      備注:jlccn是本人的GitHub賬戶名;gitRepo是上面第(1)建立的Repository name;origin是遠(yuǎn)程庫(kù)名字,這是Git默認(rèn)的叫法。

      (3)把本地倉(cāng)庫(kù)的內(nèi)容推送到GitHub倉(cāng)庫(kù)

      執(zhí)行命令:git push -u origin master
      備注:第一次推送master分支時(shí),由于遠(yuǎn)程庫(kù)是空的,所以加上-u參數(shù),表示把本地master分支內(nèi)容推送到遠(yuǎn)程master分支,還會(huì)把本地的master分支和遠(yuǎn)程的master分支關(guān)聯(lián)起來(lái),以后的推送或者拉取時(shí)就可以省略-u參數(shù)。

       

      本人是win7系統(tǒng),推送時(shí)報(bào)錯(cuò)ssh:connet to host github.com port 22:Connection timed out
      應(yīng)該是22端口被防火墻禁用了,啟用方法如下:
      控制面板(右上角選擇查看方式為大圖標(biāo))—>防火墻—>高級(jí)設(shè)置—>高級(jí)設(shè)置—>出站規(guī)則—>最右邊 新建規(guī)則“新建出站規(guī)則向?qū)А薄?gt;選擇第二個(gè)“端口”—>下一步,默認(rèn)TCP,默認(rèn)特定遠(yuǎn)程端口,后面輸入22 —>下一步,允許連接—> 下一步—>下一步,名稱隨便輸入如“22端口”—>完成。
      重新執(zhí)行g(shù)it push命令,成功了。

       

       (4)查看GitHub頁(yè)面,可看到文件test.txt已經(jīng)同步上去。

      2、從遠(yuǎn)程庫(kù)克隆到本地

      從頭開(kāi)始,在GitHub創(chuàng)建遠(yuǎn)程庫(kù),再克隆到本地。

      (1)登陸GitHub創(chuàng)建倉(cāng)庫(kù)
      登陸GitHub ->右上角頭像處選擇“Your repositories”-> New -> 在“Repository name”下面輸入名稱,如gitRepo2,勾選Initialize this repository with a README -> 點(diǎn)擊“Create repository”提交。
      (2)執(zhí)行cd d:切換到d盤根目錄
      (3)執(zhí)行g(shù)it clone git@github.com:jlccn/gitRepo2.git
      備注:jlccn是本人的GitHub賬戶名;gitRepo2是上面第(1)建立的Repository name。

       

      運(yùn)行后,在d盤自動(dòng)創(chuàng)建目錄gitRepo2,內(nèi)容如下:

       

      九、分支管理

      1、分支基本操作

      查看分支:git branch
      創(chuàng)建分支:git branch <name>
      切換分支:git checkout <name>或者git switch <name>
      創(chuàng)建+切換分支:git checkout -b <name>或者git switch -c <name>
      合并某分支到當(dāng)前分支:git merge <name>
      刪除分支:git branch -d <name>

      (1)創(chuàng)建并切換到dev分支

       

      備注:相當(dāng)于兩條命令git brance dev和git checkout dev,也可以使用最新的命令git switch -c dev

      (2)查看分支

       

      (3)手動(dòng)修改test.txt增加一行“第3行分支”,然后提交

       

      (4)切換回master分支

       

      備注:也可以使用git switch master

      打開(kāi)test.txt,會(huì)發(fā)現(xiàn)剛才添加的內(nèi)容不見(jiàn)了,因?yàn)閯偛盘峤皇窃赿ev分支上,不會(huì)影響到master分支。

      (5)把dev分支合并到master分支上

       

      備注:上面的Fast-forward表示這次合并是“快進(jìn)模式”,這種模式下,刪除分支后,會(huì)丟掉分支信息。
      如果要強(qiáng)制禁用Fast forward模式,Git就會(huì)在merge時(shí)生成一個(gè)新的commit,這樣,從分支歷史上就可以看出分支信息。
      禁用Fast forward可以加上參數(shù)--no-ff,完整命令git merge --no-ff -m "merge with no-ff" dev

      打開(kāi)test.txt,分支添加的內(nèi)容已經(jīng)有了。
      (6)合并后刪除dev分支

       

      2、解決沖突
      當(dāng)Git無(wú)法自動(dòng)合并分支時(shí),就必須先解決沖突,把Git合并失敗的文件手動(dòng)編輯下,再提交,合并完成。

      例子:
      (1)創(chuàng)建并切換到feature1分支

       

      (2)修改test.txt,增加一行“第4行分支feature1”,內(nèi)容如下:

      第1行
      第2行
      第3行分支
      第4行分支feature1

      (3)在feature1分支上提交

       

      (4)切換到master分支

      Git會(huì)自動(dòng)提示我們當(dāng)前master分支比遠(yuǎn)程的master分支要超前1個(gè)提交。

       

      在master分支上把test.txt文件增加一行“第4行master分支”:

      第1行
      第2行
      第3行分支
      第4行master分支

      提交master分支

       

      (5)這種情況下Git執(zhí)行快速合并,會(huì)報(bào)錯(cuò)

       

      打開(kāi)test.txt,內(nèi)容如下:

      第1行
      第2行
      第3行分支
      <<<<<<< HEAD
      第4行master分支
      =======
      第4行分支feature1
      >>>>>>> feature1

      git status可以查看沖突的文件

       

      (6)手動(dòng)編輯test.txt內(nèi)容并保存,然后再提交

      第1行
      第2行
      第3行分支
      第4行分支feature1
      第5行master分支

       

       用帶參數(shù)的git log可以看到分支的合并情況

       

      (7)刪除feature1分支

      3、Bug分支
      當(dāng)接到一個(gè)需要修復(fù)bug的優(yōu)先任務(wù)時(shí),手頭工作沒(méi)有完成時(shí),沒(méi)法提交。
      這時(shí)可以先把工作現(xiàn)場(chǎng)git stash一下,然后去修復(fù)bug,修復(fù)后,再git stash pop,回到工作現(xiàn)場(chǎng)。
      在master分支上修復(fù)的bug,想要合并到當(dāng)前dev分支,可以用git cherry-pick <commit>命令,把bug提交的修改“復(fù)制”到當(dāng)前分支,避免重復(fù)勞動(dòng)。
      例子:
      (1)創(chuàng)建并切換到dev分支

       

      (2)編輯test.txt,增加下面最后一行內(nèi)容:

      第1行
      第2行
      第3行分支
      第4行分支feature1
      第5行master分支
      第6行dev分支處理中...

      (3)此時(shí)接到一個(gè)修復(fù)bug任務(wù),可以使用git stash保存工作區(qū)的修改

       

      此時(shí)打開(kāi)test.txt,會(huì)發(fā)現(xiàn)第(2)添加的最后一行內(nèi)容不見(jiàn)了。

      (4)假設(shè)在master分支上修復(fù)bug,切換到master分支上,并創(chuàng)建臨時(shí)分支

       

      (5)模擬修復(fù)bug,手動(dòng)編輯test.txt,內(nèi)容如下,然后提交

      第1行
      第2行
      第3行分支
      第4行分支feature1
      第5行master分支:修復(fù)bug

       

      備注:留意本次提交的版本號(hào)d12d0fb,在后面有用到。

      (6)切換master分支,并完成合并,最后刪除issue-101分支

       

      (7)切換回dev分支

      用git status顯示工作區(qū)是干凈的,用git stash list查看保存的工作現(xiàn)場(chǎng)

       

      恢復(fù)有兩個(gè)辦法:
      一是用git stash apply恢復(fù),但是恢復(fù)后,stash內(nèi)容并不刪除,需要用git stash drop來(lái)刪除;
      另一種方式是用git stash pop,恢復(fù)的同時(shí)把stash內(nèi)容也刪了:

      用git stash list查看,就看不到任何stash內(nèi)容了:

       

      打開(kāi)test.txt文件,內(nèi)容如下(注意第5行內(nèi)容不一樣):

      第1行
      第2行
      第3行分支
      第4行分支feature1
      第5行master分支
      第6行dev分支處理中...

      (8)模擬完成dev任務(wù),手動(dòng)編輯test.txt,內(nèi)容如下,然后提交

      第1行
      第2行
      第3行分支
      第4行分支feature1
      第5行master分支
      第6行dev分支處理完成

       

      (9)修復(fù)dev分支的同個(gè)bug

      dev分支是早期從master分支分出來(lái)的,所以,這個(gè)bug其實(shí)在當(dāng)前dev分支上也存在。

      使用git cherry-pick d12d0fb命令,復(fù)制一個(gè)特定的提交到當(dāng)前分支。

       

      備注:因?yàn)樾薷牡氖峭瑐€(gè)文件,所以這里提示有沖突。
      打開(kāi)test.txt,內(nèi)容如下:

      第1行
      第2行
      第3行分支
      第4行分支feature1
      <<<<<<< HEAD
      第5行master分支
      第6行dev分支處理完成
      =======
      第5行master分支:修復(fù)bug
      
      >>>>>>> d12d0fb... fixbug 101

      修改為:

      第1行
      第2行
      第3行分支
      第4行分支feature1
      第5行master分支:修復(fù)bug
      第6行dev分支處理完成

      然后再提交即可。

        

      4、Feature分支
      在dev分支開(kāi)發(fā)時(shí),每添加一個(gè)新功能,最好新建一個(gè)feature分支,在上面開(kāi)發(fā),完成后,合并,最后,刪除該feature分支。
      但有時(shí)feature分支提交后,還沒(méi)合并,feature分支的功能沒(méi)用了,這時(shí)要?jiǎng)h除分支,就要使用-D參數(shù)強(qiáng)制刪除。
      (1)當(dāng)前是dev分支,切換并創(chuàng)建feature2分支

       

      (2)開(kāi)發(fā)完后提交

       

      (3)切換加dev,準(zhǔn)備合并,然后刪除feature2分支

       

      (4)此時(shí)因某種原因新功能取消,刪除feature2分支,用-d刪除

       

      提示還沒(méi)有被合并,如果刪除,將丟失掉修改,如果要強(qiáng)行刪除,需要使用大寫的-D參數(shù)。

      (5)強(qiáng)行刪除

       

      備注:不刪除沒(méi)用的分支,也沒(méi)什么影響,只是看起來(lái)比較亂。 

      5、多人協(xié)作的流程

      (1)首先,可以試圖用git push origin <branch-name>推送自己的修改;
      (2)如果推送失敗,則因?yàn)檫h(yuǎn)程分支比你的本地更新,需要先用git pull試圖合并;
      (3)如果合并有沖突,則解決沖突,并在本地提交;
      (4)沒(méi)有沖突或者解決掉沖突后,再用git push origin <branch-name>推送就能成功!
      如果git pull提示no tracking information,則說(shuō)明本地分支和遠(yuǎn)程分支的鏈接關(guān)系沒(méi)有創(chuàng)建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。
      例子:
      (1)查看遠(yuǎn)程庫(kù)信息:git remote
      (2)查看遠(yuǎn)程庫(kù)詳細(xì)信息:git remote -v
      (3)推送分支:git push origin master

       

      小結(jié):
      本地新建的分支如果不推送到遠(yuǎn)程,對(duì)其他人就是不可見(jiàn)的;
      并不是所有本地分支都需要往遠(yuǎn)程推送:
      master分支是主分支,因此要時(shí)刻與遠(yuǎn)程同步;
      dev分支是開(kāi)發(fā)分支,團(tuán)隊(duì)所有成員都需要在上面工作,所以也需要與遠(yuǎn)程同步;
      bug分支只用于在本地修復(fù)bug,沒(méi)必要推到遠(yuǎn)程;
      feature分支是否推到遠(yuǎn)程,取決于是否和團(tuán)隊(duì)成員合作在上面開(kāi)發(fā)。

      十、標(biāo)簽管理  

      1、打標(biāo)簽
      切換到要打標(biāo)簽的分支上,輸入命令git tag <name>打標(biāo)簽

       

      備注:默認(rèn)標(biāo)簽是打在最新提交的commit上的。

      2、歷史提交的commit id打標(biāo)簽

       

      3、查看所有標(biāo)簽

       

      4、查看標(biāo)簽信息

       

      5、創(chuàng)建帶有說(shuō)明的標(biāo)簽,用-a指定標(biāo)簽名,-m指定說(shuō)明文字

       

      6、用命令git show <tagname>可以看到說(shuō)明文字:

       

       7、刪除標(biāo)簽

       

      8、推送某個(gè)標(biāo)簽到遠(yuǎn)程
      因?yàn)閯?chuàng)建的標(biāo)簽都只存儲(chǔ)在本地,不會(huì)自動(dòng)推送到遠(yuǎn)程。

       

        

       9、如果標(biāo)簽已經(jīng)推送到遠(yuǎn)程,要?jiǎng)h除遠(yuǎn)程標(biāo)簽,要先從本地刪除,再?gòu)倪h(yuǎn)程刪除

       

       

       

       

       

      參考:https://www./wiki/896043488029600

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多