日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Git 从了解到放弃

發(fā)布時(shí)間:2023/12/2 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Git 从了解到放弃 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 簡單介紹

1.1. git起源

在1991年linus創(chuàng)建了Linux從此linux成為服務(wù)器領(lǐng)域的佼佼者,大部分web服務(wù)器、郵件、數(shù)據(jù)庫各種服務(wù)器端程序都安裝在了linux上面運(yùn)行,主要是因?yàn)樗\(yùn)行的快速、高效、利用率高,這樣一個(gè)優(yōu)秀的系統(tǒng)并不是一個(gè)人在維護(hù),來自民間的眾多高手一起在維護(hù)這linux發(fā)展,那么這么多分布式世界各地的人如何共同維護(hù)如此多的Linux代碼呢?這就需要一個(gè)分布式代碼管理工具,linus使用過BitKeeper來管理代碼但是它是收費(fèi)的,讓很多人用著不爽,后來linus本人就自己開發(fā)寫了一個(gè)工具來管理,這就是git的第一個(gè)版本。后來隨著時(shí)間推移越來越多的開源軟件通過Git來管理,為了把世界各地的開源項(xiàng)目管理起來,GitHub網(wǎng)站隨后上線了,很多流行的項(xiàng)目加入的此網(wǎng)站上面。例如我們經(jīng)常使用的jquery等。

1.2. 集中式vs分布式

分布式版本系統(tǒng)的最大好處之一是在本地工作完全不需要考慮遠(yuǎn)程庫的存在,也就是有沒有聯(lián)網(wǎng)都可以正常工作,而SVN在沒有聯(lián)網(wǎng)的時(shí)候是拒絕干活的!當(dāng)有網(wǎng)絡(luò)的時(shí)候,再把本地提交推送一下就完成了同步,真是太方便了!集中式版本控制系統(tǒng)像CVS、SVN等,一般是將代碼部署到一臺(tái)服務(wù)器上面,每個(gè)開發(fā)者在每天開發(fā)之前需要從服務(wù)器上面checkout下來最新的代碼,本地修改完后要 commit,要求本地電腦與服務(wù)器連著才可以提交如果網(wǎng)絡(luò)帶寬慢則會(huì)很卡,記得曾經(jīng)在公司提交代碼,幾十k的代碼每次提交都會(huì)卡住,很影響開發(fā)速度和開發(fā)質(zhì)量。相比之下,git本地就有倉庫,每個(gè)開發(fā)者都有完整的代碼,可以在上面進(jìn)行各種開發(fā),沒有網(wǎng)絡(luò)的延遲。提高開發(fā)效率。每個(gè)人修改代碼之后會(huì)將修改的代碼互相推送給每個(gè)人,通常為了提高互相推送的傳輸效率往往搭建一臺(tái)git服務(wù)器來進(jìn)行代碼的推送和拉回,可以提高開發(fā)效率。

1.3. 各種git的介紹

  • git是一個(gè)本地工具,用來關(guān)聯(lián)遠(yuǎn)程的git服務(wù)器,同時(shí)本地也有時(shí)光穿梭的功能
  • gitlab,github,碼云等都是云服務(wù),是本地的git的一個(gè)鏡像。在不同電腦上就可以拉取,同步。
  • 1.4. git的安裝

    一般大神都是用git的命令行工具,同時(shí)也有很多的圖形化工具:souretree等

  • windows 下的安裝

    從官網(wǎng)上 :https://git-scm.com/ 上下載,傻瓜式安裝就好了

  • linux 下安裝

  • yum install git

    2. 本地git的使用

    2.1. 初始化本地倉庫

    # 使用gitbash創(chuàng)建一個(gè)目錄,并進(jìn)入到該目錄種 mkdir learngit cd learngit # 初始化倉庫 git init # 在該文件下多了一個(gè).git的隱藏目錄 $ ll -a total 24 drwxr-xr-x 1 LH 197121 0 6月 28 14:22 ./ drwxr-xr-x 1 LH 197121 0 6月 28 14:20 ../ drwxr-xr-x 1 LH 197121 0 6月 28 14:22 .git/

    2.2. 配置識(shí)別賬戶與密碼

    這個(gè)賬戶密碼并不是登入的賬號(hào)密碼,只是作為一個(gè)識(shí)別碼,區(qū)分誰提交的。
    每次commit的時(shí)候,都會(huì)帶上這個(gè)信息

    git config --global --list # 查看是否配置了 git config --global user.name hui git config --global user.email 232344@qq.com

    2.3. git的操作

    使用下面的命令就可以完成一次版本的提交。

    git add filename # add dir 添加該文件下所有文件; add file1 file2 ; add . 添加所有所有的文件。 git commit -m '注釋消息' # -m是注釋的意思。注意的是 每次版本提交都要詳細(xì)標(biāo)明每次變化

    2.4. 三區(qū):工作區(qū)、緩存區(qū)、版本區(qū)

  • 工作區(qū)就是我們工作的區(qū)域--我們編寫代碼的地方
  • 暫存區(qū),index(stage) -- add的地方
  • 版本區(qū) -- commit的地方
  • 2.5. 查看提交的版本信息

    git log git log --pretty=oneline # 一行顯示,還有其他參數(shù)自己研究

    2.6. 版本回退-git reset

    回退到上一個(gè)版本 git reset --hard HEAD^ 回退到上上個(gè)版本 git reset --hard HEAD^^ 回到到上100個(gè)版本 git reset --hard HEAD~100 回退到指定的版本 git reset --hard 具體的版本號(hào)(使用git log查看)

    但是我們回到上一個(gè)版本之后,使用git log 看不到之后的版本了,這個(gè)很蛋疼:

  • 使用命令行上面git log可以看到之后的版本,可以到那個(gè)版本去。
  • 使用git reflog 可以看到每一次操作的版本號(hào)(一般都使用這個(gè))
  • 2.7. 撤銷-git checkout

    git checkout -- filename

    分為兩種情況:

  • 如果文件自修改后還沒有add到緩存區(qū),現(xiàn)在撤銷的話,工作區(qū)就會(huì)和版本庫一直
  • 如果文件已經(jīng)添加到緩存區(qū),又做了修改?,F(xiàn)在撤銷的話,就會(huì)回到緩存去的狀態(tài)
  • 總之,就是讓文件回到最后一次git add 或 git commit的狀態(tài)

    3. 遠(yuǎn)端倉庫

    3.1. github設(shè)置

  • 再創(chuàng)建賬號(hào)密碼之后,創(chuàng)建新倉庫
  • public是公有的,大家都能看見。private是私有的,但是需要money
  • init選項(xiàng),最好不要選擇,不然會(huì)造成 本地的master 與 遠(yuǎn)程的master不一致(本地沒readme,遠(yuǎn)端有readme),推送的時(shí)候會(huì)發(fā)生錯(cuò)誤??梢韵萷ull下來,讓本地與云端都有readme。這樣可以解決
  • .gitignore是忽略某些文件:一些大文件,我們不需要修改,但又比較大。再push的時(shí)候,就可以忽略。增加速度
    license是一個(gè)公開授權(quán),沒啥用
  • 3.2. 兩種連接方式

  • 使用https的連接方式-適合單人
  • 需要賬號(hào)密碼認(rèn)證- 適合單人的項(xiàng)目

    git remote add origin https://github.com/star-hui/gittest.git # origin是倉庫的名字,可以隨意定義但是下面必須一直 git push -u origin master # 第一次推送的時(shí)候,需要把本地的mster分支與遠(yuǎn)程的master分支合并。所以加上-u參數(shù) git push origin msster # 之后每次連接不需要-u參數(shù)
  • 使用ssh連接-適合團(tuán)隊(duì)
  • 直接使用公鑰,團(tuán)隊(duì)成員每個(gè)成員的公鑰都加入進(jìn)來,就可以一起使用了。

    # 第一步:在你本地先生成rsa的密鑰 ssh-keygen.exe -t rsa -C '123@qq.com' # 郵箱是團(tuán)隊(duì)每個(gè)成員自己的郵箱,只作為標(biāo)識(shí)符# 第二步: 在上一步生成的rsa文件夾種,把.pub結(jié)尾的文件加入到github網(wǎng)站的ssh-key中# 第三步: 本地進(jìn)行關(guān)聯(lián)操作git remote add louhui git@github.com:star-hui/sshtest.git# louhui只是倉庫名,:后面的為項(xiàng)目地址,前面郵箱都使用Git官方郵箱。# 第四部: 推送 # 第一次推送,需要合并本地與遠(yuǎn)端的master分支 git push -u louhui master # 以后推送 git push -u louhui master

    在上面其實(shí)我們看出,本地的git可以添加多個(gè)遠(yuǎn)程倉庫,使用倉庫名來區(qū)分就可以了。如下:

    git remote add louhui | origin git push louhui | origin master # 使用不同的倉庫名,進(jìn)行推送

    3.3. 克隆云端的項(xiàng)目

    本地不需要新初始化一個(gè)倉庫,克隆下來就是一個(gè)倉庫了:
    有兩種辦法,有些網(wǎng)絡(luò)場(chǎng)景被屏蔽的一些端口的時(shí)候,可以從這兩種來選擇。

  • 第一種直接使用遠(yuǎn)端的倉庫https地址:進(jìn)入到倉庫,直接復(fù)制下來

    git clone https://github.com/star-hui/gittest

  • 第二種使用ssh來連接克隆

    git clone git@github.com:star-hui/sshtest.git

  • 3.4. 分支管理

    待完善

    轉(zhuǎn)載于:https://www.cnblogs.com/louhui/p/9241460.html

    創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

    總結(jié)

    以上是生活随笔為你收集整理的Git 从了解到放弃的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。