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

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

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

      Git使用教程(帶你玩轉(zhuǎn)GitHub)

      Git使用教程(理論實(shí)體結(jié)合體系版)

      下載安裝:

      按照這個(gè)博客來(lái)就好

      Windows系統(tǒng)Git安裝教程(詳解Git安裝過(guò)程) - 學(xué)為所用 - 博客園 (cnblogs.com)

      Git命令大全:

      Git 大全 - Gitee.com

      最小配置:

      在桌面右鍵點(diǎn)擊Git Bash Here進(jìn)入命令行,GUI我們不常用。

      image-20230609132310642

      首先要設(shè)置你的用戶名稱和 e-mail 地址, 因?yàn)槊看?Git 提交都會(huì)使用該信息

      開(kāi)始配置你的用戶名和郵箱,單引號(hào)中間隨便填你的信息即可,最后用 git config --system --list 查看當(dāng)前用戶配置,該指令顯示的就是 C:\Users\windows.gitconfig 內(nèi)容(后面再來(lái)說(shuō)這是什么文件)

      image-20230609132221802

      ?指令成功執(zhí)行后,在C:\Users\windows.gitconfig會(huì)生成一個(gè)文件 ,打開(kāi)之后就是你剛剛配置的玩意

      image-20230609134428438

      OK配置完基本信息,來(lái)講一下理論知識(shí),然后再開(kāi)始教大家具體的操作。

      Git 工作原理 [ 重要 ] :

      四大工作區(qū)域:

      Git 本地有三個(gè)工作區(qū)域:

      • 工作區(qū)(Working Directory)

      • 暫存區(qū)(Stage/Index)

      • 倉(cāng)庫(kù)區(qū) (Repository)

      • 再加上遠(yuǎn)程的 git 倉(cāng)庫(kù)(Remote Directory) 就可以分為四個(gè)工作區(qū)域

      具體說(shuō)明一下:

      • 工作區(qū):就是你平時(shí)存放代碼的地方

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

      • 倉(cāng)庫(kù)區(qū)(本地倉(cāng)庫(kù)):就是安全存放數(shù)據(jù)的位置,這里面有你提交到所有版本的數(shù)據(jù)

      • 遠(yuǎn)程倉(cāng)庫(kù):就是托管代碼的服務(wù)器(比如 Github/Gitee),也可以簡(jiǎn)單的認(rèn)為是一臺(tái)用于遠(yuǎn)程數(shù)據(jù)交換的電腦

      一圖勝千言:4個(gè)區(qū)域之間要使用到的指令

      image-20230609144725222

      需要注意的是,clone的作用類似pull,但是還是有點(diǎn)區(qū)別的,具體文章看這里就好。(我們一般從GitHub上獲取別人的代碼用的都是clone)

      Git教程 git pull 和 git clone的區(qū)別 - 騰訊云開(kāi)發(fā)者社區(qū)-騰訊云 (tencent.com)

      實(shí)踐:

      建 Git 倉(cāng)庫(kù)

      • 在已經(jīng)有項(xiàng)?代碼的文件夾里建Git倉(cāng)庫(kù)

        • 在已有的項(xiàng)目代碼文件夾處右鍵,點(diǎn)擊Git Bash Here進(jìn)入命令行輸入 git init ,然后就會(huì)出現(xiàn)一個(gè)隱藏的文件夾 .git

        • image-20230609145425742

      • 在不存在的代碼的文件夾中建Git倉(cāng)庫(kù)

        • 前面操作相同,指令改成輸入 git init [自定義項(xiàng)目名] 即可,然后在idea新建項(xiàng)目時(shí)使用這個(gè)文件夾就好了。

        • image-20230609145754843

      克隆遠(yuǎn)程倉(cāng)庫(kù)

      就是將遠(yuǎn)程服務(wù)器上的倉(cāng)庫(kù)完全鏡像一份至本地,這里我們拿JavaGuide的作為示范,如果我們想要獲取到他的開(kāi)源文件,我們只需要在你想要保存clone下來(lái)的文件的地方右鍵點(diǎn)擊Git Bash Here進(jìn)入命令行輸入 git clone [URL]

      image-20230609150430098

      隨便找個(gè)文件夾,我們輸入git clone 加上復(fù)制下來(lái)他的URL,等進(jìn)度條到100%即可(如果沒(méi)有魔法的話可能會(huì)很慢甚至失敗)再細(xì)我就不好明說(shuō)了,如果實(shí)在不知道魔法是什么的小白,具體可以找置頂文章聯(lián)系我。

      image-20230609150818903

      文件操作指令

      先來(lái)介紹文件的4大狀態(tài):

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

      • Unmodify: 未修改,文件已經(jīng)入庫(kù),而且與工作區(qū)的內(nèi)容相同。

        1. 如果想要把他移出版本庫(kù),可以使用 git rm 移出去不再同步

        2. 如果被修改了,就會(huì)變成 Modified 已修改狀態(tài)

      • Modified: 已修改,這種文件有兩個(gè)去處

        1. 可以使用 git add 將其加入暫存區(qū)

        2. 也可以使用 git checkout 丟棄修改過(guò)的內(nèi)容,返回到剛剛 未修改 的狀態(tài)(即從庫(kù)中取出文件,覆蓋當(dāng)前已修改的文件)

      • Staged: 暫存狀態(tài),同樣,也有兩個(gè)去處

        1. 執(zhí)行 git commit 則將其同步到庫(kù)中,此時(shí)版本庫(kù)與工作區(qū)一致,變成未修改狀態(tài)

        2. 執(zhí)行 git reset HEAD filename 取消暫存, 文件狀態(tài)變?yōu)橐研薷臓顟B(tài)

      實(shí)踐一下吧

      找到剛剛建好git倉(cāng)庫(kù)的文件夾,還是打開(kāi)git bash here 輸入git status [文件名] ,可以先寫(xiě)個(gè)幾個(gè)字母然后按tab鍵一鍵補(bǔ)全文件名。比如說(shuō)這里就是先寫(xiě)個(gè) s 然后按 tab 就會(huì)自動(dòng)出來(lái) src/ 了

      image-20230609153548884

      用 git add 加入暫存區(qū)

      image-20230609154021336

      然后就可以開(kāi)始提交至本地倉(cāng)庫(kù)了,使用 git commit -m "自定義一些需要攜帶的信息"

      image-20230609154453914

      可以看到如果我們?cè)儆?git status 來(lái)查看狀態(tài)的話,會(huì)提示沒(méi)有什么需要提交的了。

      忽略文件

      實(shí)際需求:我們不想把某些文件納入版本控制中, 如何處理?

      這塊內(nèi)容都是一些配置,可以直接看這篇文章就好了

      .gitignore文件語(yǔ)法和常見(jiàn)寫(xiě)法(就看這篇就行了)gitinore 以 * 結(jié)尾石頭wang的博客-CSDN博客

      具體這個(gè)文件在哪呢,一般在idea文件夾下

      image-20230609155337629

      image-20230609155342682

      打開(kāi)之后可以打開(kāi)上面的網(wǎng)址對(duì)照的文件學(xué)一下每一行是什么意思,這里我就不再細(xì)說(shuō)了。

      image-20230609155408230

      創(chuàng)建自己的遠(yuǎn)程倉(cāng)庫(kù)

      這里我們使用GitHub,如果沒(méi)有魔法也可以使用Gitee,但是Gitee還要實(shí)名認(rèn)證什么的也挺麻煩。實(shí)際兩個(gè)都差不多操作,這里就用GitHub進(jìn)行講解。

      首先是打開(kāi)GitHub官網(wǎng)注冊(cè)一個(gè)自己的賬號(hào)好吧,這里就是正常注冊(cè)賬號(hào)的流程,自己跟著官方指導(dǎo)鼓搗鼓搗就好了。當(dāng)然,這里為了照顧一些看到英文就頭大的同學(xué),還是貼個(gè)教程給你們吧。

      注冊(cè)Github賬號(hào)詳細(xì)教程【超詳細(xì)篇 適合新手入門】-阿里云開(kāi)發(fā)者社區(qū) (aliyun.com)

      之后就可以在右上角開(kāi)始創(chuàng)建我們自己的倉(cāng)庫(kù)了,這里借用官方文檔的配圖

      包含創(chuàng)建新存儲(chǔ)庫(kù)選項(xiàng)的下拉菜單

      為倉(cāng)庫(kù)寫(xiě)一個(gè)簡(jiǎn)短好記的名稱

      創(chuàng)建 GitHub 存儲(chǔ)庫(kù)的第一步的屏幕截圖。 “存儲(chǔ)庫(kù)名稱”字段包含文本“hello-world”,并用深橙色框出。

      設(shè)置為開(kāi)源還是私有

      用于選擇存儲(chǔ)庫(kù)可見(jiàn)性的單選按鈕

      勾選自動(dòng)創(chuàng)建readme文件,.gitignore我們一般使用的是Java就用Java類型即可

      image-20230609170435390

      那么到這里,一個(gè)基本的倉(cāng)庫(kù)就建好了。

      上傳文件至遠(yuǎn)程倉(cāng)庫(kù)

      這里我就順便把我目前做的所有筆記上傳至GitHub玩一玩好了

      首先是把剛剛新建好的倉(cāng)庫(kù)clone到本地某個(gè)文件夾先

      image-20230609174058129

      把當(dāng)前的文件夾和遠(yuǎn)程倉(cāng)庫(kù)綁定 git remote add origin [遠(yuǎn)程倉(cāng)庫(kù)URL地址]

      image-20230609174210625

      把咱們的筆記放進(jìn)去之后,輸入 git add . 將筆記加入到暫存區(qū)

      image-20230609174216112

      檢查一下我們的倉(cāng)庫(kù)分支是什么,這個(gè)是一開(kāi)始新建倉(cāng)庫(kù)時(shí)可以指定的,比如main或者master,剛剛在GitHub建倉(cāng)庫(kù)的時(shí)候默認(rèn)是main了

      image-20230609174222161

      調(diào)用push指令將其更新到遠(yuǎn)程倉(cāng)庫(kù),指令是 git push -u origin [倉(cāng)庫(kù)分支]

      image-20230609174228339

      大功告成哈哈哈 ,成品地址 yuanhantin/JavaStudyBlog (github.com)

      image-20230609174854145

      總結(jié):

      第一次創(chuàng)建倉(cāng)庫(kù)時(shí)
      1.clone到本地
      git clone [遠(yuǎn)程倉(cāng)庫(kù)URL地址]
      ?
      2.把當(dāng)前的文件夾和遠(yuǎn)程倉(cāng)庫(kù)綁定
      git remote add origin [遠(yuǎn)程倉(cāng)庫(kù)URL地址]
      ?
      3.更改一系列文件后
      git add .  將所有更改后的文件加入到暫存區(qū)
      ?
      4.調(diào)用push指令將其更新到遠(yuǎn)程倉(cāng)庫(kù)
      git push origin [倉(cāng)庫(kù)分支]
      ?
      以后再需要更新修改文件只要使用后2個(gè)指令即可
      ?
      有時(shí)候會(huì)顯示這樣一句話導(dǎo)致push失敗,原因是本地倉(cāng)庫(kù)相對(duì)于遠(yuǎn)程倉(cāng)庫(kù)不是最新,先pull更新本地,再把自己的push上去
      Updates were rejected because the remote contains work that you do
      這個(gè)時(shí)候有兩個(gè)解決方法,一是強(qiáng)推,二就是pull一下再更新
      如果確保本地沒(méi)問(wèn)題的話,可直接用強(qiáng)推 git push -f origin [倉(cāng)庫(kù)分支]即可

      最后,實(shí)際情況可能還會(huì)有很多原因?qū)е履悴荒軐⒈镜卮a推送到倉(cāng)庫(kù)中,不過(guò)git這方面也沒(méi)啥太多bug,只需要把報(bào)錯(cuò)復(fù)制到谷歌上搜一下就有結(jié)果了,這里不再贅述太多。

      分支與合并:

      實(shí)際開(kāi)發(fā)過(guò)程中,有可能一個(gè)項(xiàng)目會(huì)有多個(gè)版本的需求,比如說(shuō)我們QQ有什么國(guó)際版,HD版,精簡(jiǎn)版之類的。所以這里就需要分支的概念了,分支出來(lái)的版本有可能是與主版本平行的永遠(yuǎn)不會(huì)相交,也有可能某一天需要將他與主版本合并。畫(huà)一張圖大概長(zhǎng)這樣:

      image-20230612133925283

      當(dāng)然,合并不一定是跟主分支,也可以跟其他分支合并。

      列一下指令先,簡(jiǎn)單看看就好,等會(huì)我們?cè)偈痉兑幌略趺词褂?/span>

      # 列出所有本地分支
      $ git branch
      ?
      # 列出所有遠(yuǎn)程分支
      $ git branch -r
      ?
      # 列出所有本地分支和遠(yuǎn)程分支
      $ git branch -a
      ?
      # 新建一個(gè)本地分支,但依然停留在當(dāng)前分支
      $ git branch [分支名]
      ?
      # 切換到該分支
      $ git checkout [分支名]
      ?
      #新建一個(gè)遠(yuǎn)程分支,將冒號(hào)左右兩邊的分支綁定,并將本地分支提交至新建的遠(yuǎn)程分支
      $ git push origin 本地分支名:新建的遠(yuǎn)程分支名

      實(shí)戰(zhàn)一下:

      image-20230612164630672

      image-20230612164903622

      看看我們的倉(cāng)庫(kù)有沒(méi)有變化,這里為什么我又使用了Gitee了,因?yàn)橛捎谀Хǔ隽它c(diǎn)問(wèn)題搞得GitHub提交老是超時(shí),懶得弄了,換成了國(guó)內(nèi)的Gitee,不過(guò)也不影響講解,問(wèn)題不大好吧。

      master分支我在創(chuàng)建的時(shí)候忘記截圖了,就是把readme文件內(nèi)容改成了test1而已。

      image-20230612165459893

      image-20230612170023518

      那么分支講解完畢,我們來(lái)看看合并吧。

      在 Git 中,進(jìn)行合并是非常簡(jiǎn)單方便的。它只需要兩個(gè)步驟:

      • (1) 切換到那個(gè)需要接收改動(dòng)的分支上。

      • (2) 執(zhí)行 “git merge” 命令,并且在后面加上那個(gè)將要合并進(jìn)來(lái)的分支的名稱。

         

        來(lái)讓我們把 “master2” 分支的改動(dòng)合并到 “master” 中去:

      $ git checkout master
      $ git merge master2

      當(dāng)然,為了以示區(qū)別,我們新建一個(gè)Merge文件,并將它同步到mater2分支上去,過(guò)程我就不演示了,上面已經(jīng)使用過(guò)很多次了。

      image-20230612171911237

      image-20230612172010770

      然后我們開(kāi)始執(zhí)行合并分支操作,誒,出問(wèn)題了???合并沖突,想一想為什么。

      image-20230612173522762

      因?yàn)槲覀僲aster的readme文件中第一行的內(nèi)容是 test1,而master2中的文件內(nèi)容為 master2 ,在合并的時(shí)候計(jì)算機(jī)不知道你要保留master還是master2的內(nèi)容,所以引發(fā)了合并沖突。如何解決呢?就是把Git合并失敗的文件手動(dòng)編輯為我們希望的內(nèi)容,再提交。

      打開(kāi)我們的Readme文件,可以看到Git自動(dòng)加些東西進(jìn)去,差不多就長(zhǎng)這樣的一個(gè)提示,什么意思不重要,反正一下就讓我們看到問(wèn)題出在第一行了,我們修改一下就好。(不過(guò)正常的提示不長(zhǎng)這樣,可能因?yàn)槭莔d文件格式出了點(diǎn)小問(wèn)題,不過(guò)問(wèn)題不大,等會(huì)我們講講正常的提示)

      image-20230612174158883

      那么我們把master分支的文件中的 test1修改成 和master2分支的文件中一樣的 master2 ,解決好沖突之后,我們?cè)龠M(jìn)行一次 add、commit、merge操作,發(fā)現(xiàn)這次不再報(bào)錯(cuò)了,然后我們push到遠(yuǎn)程倉(cāng)庫(kù)看看效果。

      image-20230612175833101

      可以看到將 master2 合并到 master 過(guò)后確實(shí)多了一個(gè)Merge.txt文件了

      image-20230612175906597

      再來(lái)講講剛剛挖的坑,所謂的正常提示是什么,有什么用?

      正常的提示:

      當(dāng) Git 無(wú)法執(zhí)行自動(dòng)合并時(shí),因?yàn)楦脑谕粎^(qū)域,它會(huì)用特殊字符來(lái)表示沖突的區(qū)域。這些字符序列是這樣的:

      • <<<<<<<

      • =======

      • >>>>>>>

      <<<<<<<=======之間的所有內(nèi)容都是你的本地修改。 這些修改還沒(méi)有在遠(yuǎn)程版本庫(kù)中。=======>>>>>>>之間的所有行都是來(lái)自遠(yuǎn)程版本庫(kù)或另一個(gè)分支的修改。現(xiàn)在你需要研究這兩個(gè)部分并做出決定。

      下面的圖片顯示了一個(gè)文件的內(nèi)容,表明自動(dòng)合并沒(méi)有發(fā)生,有一個(gè)沖突。沖突發(fā)生在我們?cè)诒镜匦薷牧宋募黾恿艘恍?/span>- Sleep。但與此同時(shí),其他人在同一區(qū)域添加了 - Gym 行,從而推送了一個(gè)修改。

      因此,- Sleep行被標(biāo)記為本地修改,- Gym行被標(biāo)記為從遠(yuǎn)程倉(cāng)庫(kù)或其他分支傳入的修改。

      “由于同一區(qū)域的變化而產(chǎn)生的合并沖突”

      所以這個(gè)時(shí)候就得去找你的同事扯皮了,到底是用你的sleep還是用他的gym,亦或是新建一行而不是在同一行添加。

       

       

      posted @ 2023-06-19 18:12  翰林猿  閱讀(345)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 精品一区二区中文字幕| 国产乱码精品一区二区三区中文| 人人妻人人狠人人爽天天综合网 | 亚洲精品久久国产高清| 九九成人免费视频| 国产精品一区二区三区黄| 亚洲自拍偷拍福利小视频| 色婷婷婷丁香亚洲综合| 阿鲁科尔沁旗| 亚洲人精品午夜射精日韩| 日韩精品无遮挡在线观看| 成人3d动漫一区二区三区| 老司机午夜精品视频资源| 亚洲欧美在线一区中文字幕| 亚洲日韩乱码中文无码蜜桃| 国产午夜精品福利视频| 日韩精品无码人妻一区二区三区| 亚洲中文字幕无码一久久区| 亚洲一区三区三区成人久| 国产精品大全中文字幕| 国产精品成人午夜久久| 国内精品久久久久影院薰衣草| 偷拍专区一区二区三区| 日本少妇xxx做受| 國產尤物AV尤物在線觀看| 亚洲欧洲一区二区三区久久| 人人澡人人透人人爽| 亚洲18禁一区二区三区| 人妻在线无码一区二区三区| 26uuu另类亚洲欧美日本| 精品国产性色av网站| 国产精品自拍中文字幕| 韩国午夜福利片在线观看| 日本中文字幕在线播放| 熟女人妻精品一区二区视频| 亚洲第一极品精品无码久久| 国产-第1页-浮力影院| 日韩人妻精品中文字幕专区| 亚洲国产午夜福利精品| 亚洲精品国产中文字幕| 思思99热精品在线|