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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

Git--团队开发必备神器

發(fā)布時(shí)間:2025/4/9 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Git--团队开发必备神器 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

花了兩天時(shí)間專(zhuān)門(mén)搞了一下git。整理一下分享給大家。以下我們開(kāi)始。。

  • 轉(zhuǎn)載請(qǐng)注明出處:
  • http://blog.csdn.net/Hello_Chillax/article/details/47405887
  • 很多其它精彩請(qǐng)?jiān)L問(wèn):http://blog.csdn.net/hello_chillax,謝謝

一.學(xué)習(xí)使用git之前的準(zhǔn)備(Windows環(huán)境下)。

  • 在本地裝一個(gè)git,并裝上GitBash。(不會(huì)?會(huì)裝QQ就會(huì)裝git。。

    )

  • 去GitHub官網(wǎng)上注冊(cè)一個(gè)賬號(hào)。

    給個(gè)傳送門(mén)GitHub官網(wǎng)

二.做好準(zhǔn)備之后,咱們先來(lái)掃一下盲。講講概念。

  • git和GitHub有什么差別?(已淚奔。。。


    答:git是本地代碼版本號(hào)管理工具,我們寫(xiě)項(xiàng)目時(shí),難免會(huì)要進(jìn)行代碼管理吧。比方我們每天寫(xiě)完代碼之后,總要把它備份一份吧,原因非常easy。萬(wàn)一你的工作空間(workspace)所在的硬盤(pán)突然掛了呢,不要說(shuō)幾率非常小。可是,萬(wàn)一發(fā)生呢。


    我們總能感覺(jué)到git和GitHub之間好像是有什么關(guān)系。上面我們提到,git是本地代碼管理工具。為了防止我們的工作空間(workspace)所在的硬盤(pán)突然掛掉。可是,你就不操心整塊硬盤(pán)都掛了嗎。。

    當(dāng)然,這僅僅是個(gè)小概率事件。更重要的是:我們?cè)趫F(tuán)隊(duì)開(kāi)發(fā)時(shí),須要多人合作開(kāi)發(fā)同一個(gè)軟件,不可能我寫(xiě)了代碼拷給你,你寫(xiě)了代碼拷給我吧。我們須要一個(gè)統(tǒng)一的遠(yuǎn)程版本號(hào)控制倉(cāng)庫(kù):GitHub

三.我們開(kāi)始GitHub之旅。

1.首先解釋幾個(gè)單詞的意思(⊙o⊙)…

后面會(huì)用到的。并且非常重要的:

  • pull:拉
  • push:推
  • repository:倉(cāng)庫(kù)
  • branch:分支
  • status:狀態(tài)
  • commit:提交
  • config:配置
  • global:全局的(屬性,變量等)

2.畫(huà)一張圖來(lái)解釋git本地操作,以及遠(yuǎn)程操作的邏輯流程

  • 從上圖中能夠看出。我們?nèi)粘>幋a時(shí)。首先是把工作空間里的更改的代碼通過(guò)操作①來(lái)推送到暫存區(qū)(index。stage),然后假設(shè)我們確認(rèn)這些代碼正確。無(wú)須改動(dòng)。那么就能夠把它通過(guò)②推送給本地master分支。這里我們能夠把master分支理解成本地的暫時(shí)倉(cāng)庫(kù),我們能夠從這里恢復(fù)代碼,也能夠通過(guò)這個(gè)分支進(jìn)行提交到遠(yuǎn)程GitHub上的master分支,把你的代碼提供給別人。

  • 上圖我們僅僅是描寫(xiě)敘述了由本地逐步推向遠(yuǎn)程的過(guò)程。我們先將這個(gè)高明確,后面我會(huì)反過(guò)來(lái)再操作一遍。

3.我們先實(shí)現(xiàn)步驟①

1.假設(shè)我們對(duì)代碼進(jìn)行了更改。這里我們以一個(gè)文件readme.txt為例。來(lái)解說(shuō)。

(也就是說(shuō)我們?nèi)缃窆ぷ鲄^(qū)間假設(shè)是E://firstrep。里面有一個(gè)文件readme.txt)
2.首先我們打開(kāi)D://firstrep。在該文件夾下在空白處點(diǎn)擊右鍵打開(kāi)給Git Bash.exe,初始化一個(gè)本地倉(cāng)庫(kù)。

Administrator@HJQ1EBGYSWRMA1K /e/firstrep
$ git init
Initialized empty Git repository in E:/firstrep/.git/(master)

注意:僅僅有以“$”開(kāi)頭的才是我們寫(xiě)的命令。其它的都是系統(tǒng)自己主動(dòng)生成的提示信息,當(dāng)中運(yùn)行初始化命令之后我們能夠看到路徑名后面多了一個(gè)“master“,這說(shuō)明我們初始化成功。

3.我們?nèi)缃駚?lái)找一下工作區(qū)間,版本號(hào)庫(kù),暫存區(qū),以及本地master分支

  • 工作空間:E:/firstrep

  • 版本號(hào)庫(kù):E:/firstrep/.git/(master)注意,這里.git文件夾是隱藏的,不可見(jiàn),能夠更改文件夾屬性使其顯現(xiàn)出來(lái)。

  • 暫存區(qū)和master分支:這兩個(gè)東西都存在版本號(hào)庫(kù)文件夾下

4.我們先對(duì)該文件進(jìn)行更改:

git is very easy.

然后。我們把它提交到版本號(hào)庫(kù)的暫存區(qū)里(index,stage),運(yùn)行例如以下代碼,查看git狀態(tài)

$ git status
On branch master

Initial commit

Untracked files:
(use “git add …” to include in what will be committed)

readme.txt

nothing added to commit but untracked files present (use “git >add” to track)

這里會(huì)提示我們說(shuō):在工作空間多了一個(gè)文件。我們還沒(méi)有加入到版本號(hào)庫(kù)

5.以下我們把它加到版本號(hào)庫(kù)里的暫存區(qū)。

git add –all

這樣,我們第①個(gè)環(huán)節(jié)已經(jīng)運(yùn)行結(jié)束。

4.以下我們來(lái)運(yùn)行步驟②

1.我們剛剛把更改的readme.txt.加入到暫存區(qū)(index。stage),如今我們把再把它加到本地master分支。

$ git commit -m “測(cè)試
[master (root-commit) 74c27df] 測(cè)試
1 file changed, 1 insertion(+)
create mode 100644 readme.txt

我們?nèi)缃裢ㄟ^(guò)上面一行命令。講readme.txt提交到本地master分支(事實(shí)上這么說(shuō)不是非常準(zhǔn)確,事實(shí)上提交的是改動(dòng)。而不是全部?jī)?nèi)容。這里我們能夠先這么簡(jiǎn)單地理解)。以下我們來(lái)查看一下git的狀態(tài)

$ git status
On branch master
nothing to commit, working directory clean

OK。至此,我們已經(jīng)成功完畢了本地代碼的提交。

即①②兩步。

以下我們進(jìn)行第三部。

5.運(yùn)行步驟③

如今應(yīng)該是遠(yuǎn)程有一個(gè)分支,本地有一個(gè)分支,我們?cè)贕itHub創(chuàng)建一個(gè)倉(cāng)庫(kù)(repository)。假設(shè)倉(cāng)庫(kù)地址為:https://github.com/hellochillax/Yard.git

以下我們進(jìn)行推送:

1.加入遠(yuǎn)程倉(cāng)庫(kù)的地址:

$ git remote add origin https://github.com/hellochillax/Yard.git

這里就產(chǎn)生了一個(gè)相應(yīng)關(guān)系:origin–>https://github.com/hellochillax/Yard.git

2.進(jìn)行推送操作:

$git push origin master

然后系統(tǒng)會(huì)提示你輸入GitHub的賬號(hào)password,輸入正確的賬號(hào)password后。點(diǎn)擊回車(chē),系統(tǒng)就會(huì)進(jìn)行提交工作。并且會(huì)顯示運(yùn)行進(jìn)度。當(dāng)然,我這里就不演示了,以防把我原來(lái)的項(xiàng)目覆蓋掉了。(上面的GitHub地址是我在GitHub上的一個(gè)項(xiàng)目,不可隨便推。。。當(dāng)然你看到這里也別想著去搞破壞,由于你不知道我的GitHub的賬號(hào)password。

。。)

我們上面全部的內(nèi)容攻克了本地推送到GitHub。以下我們發(fā)過(guò)來(lái)解說(shuō)從GitHub上拉取被人寫(xiě)的內(nèi)容到本地倉(cāng)庫(kù)。

6.我們還是先搞一張圖,有句話說(shuō)的好。沒(méi)圖你說(shuō)個(gè)。**

以下。我們還是分三步來(lái)講:

7.運(yùn)行步驟①

有了上面的經(jīng)驗(yàn),我們就能夠快一點(diǎn)了~
上命令:

$ git pull origin master

上面的命令是,從遠(yuǎn)程拉取文件到本地。(相同的。我就不點(diǎn)回車(chē)給大家演示了

8.運(yùn)行步驟②③

在運(yùn)行之前。我們先查看一下git的狀態(tài):

$ git status
On branch master
nothing to commit, working directory clean

呦呦呦,什么情況,怎么是“nothing to commit”呢。怎么回事,不應(yīng)該是再?gòu)陌姹咎?hào)庫(kù)中復(fù)制內(nèi)容到工作空間嗎,怎么能是不須要提交呢。

別急。你打開(kāi)工作文件夾,發(fā)現(xiàn)。工作文件夾里已經(jīng)存在了GitHub上的全部文件。

也就是說(shuō),步驟①,事實(shí)上已經(jīng)幫我們搞定了①②③要做的事。所以,②③步驟事實(shí)上不要我們做不論什么事情。。

四.git的使用之細(xì)節(jié)補(bǔ)充

  • 我們要養(yǎng)成一個(gè)好的習(xí)慣,每天晚上關(guān)電腦之前,記得把自己白天寫(xiě)的代碼推送到GitHub上,以防自己的勞動(dòng)果實(shí)丟失。盡管幾率非常小,但這不失為一個(gè)好習(xí)慣。這里要特別提一點(diǎn),GitHub上的倉(cāng)庫(kù)是public的(免費(fèi)版),也就是說(shuō),假設(shè)你不想公開(kāi)你的代碼。就別輕易放在GitHub上,或者花錢(qián)買(mǎi)個(gè)私有的倉(cāng)庫(kù)。

  • git的知識(shí)點(diǎn)非常多。使用細(xì)節(jié)也非常多。我這里僅僅是把兩個(gè)大流程給說(shuō)了一遍,事實(shí)上git是非常強(qiáng)大的。使用起來(lái)還是有非常多須要學(xué)的,比方多分支管理,沖突解決,git與eclipse或者intellij結(jié)合等。可是相同是遵從二八原理,僅僅有20%的操作是我們經(jīng)經(jīng)常使用到的,所以,假設(shè)你看到如今感覺(jué)難度一般般。那么你還是非常不錯(cuò)的。畢竟我的表達(dá)能力不是一般的一般般。。。
  • 博客寫(xiě)的比較少,內(nèi)容難免多有不當(dāng)之處,還望各位批評(píng)指正。希望本博客會(huì)給你提供一定的幫助,這也是我寫(xiě)博客的目的了。
  • 五.最后貼一下我平時(shí)總結(jié)的git經(jīng)常使用操作

    • git init 初始化一個(gè)本地倉(cāng)庫(kù)

    • git add –all 加入全部文件到暫存區(qū)(stage,index)

    • git commit -m “描寫(xiě)敘述信息” 提交更改到本地master分支

    • git status 查看git當(dāng)前狀態(tài)

    • git diff 查看改動(dòng)后和改動(dòng)前的不同之處

    • git log 獲得文件更改的歷史記錄

    • git reset –hard HEAD^ 回退本地分支到上一個(gè)版本號(hào)

    • git reset –hard HEAD~n 回退本地分支到上n個(gè)版本號(hào)

    • git checkout – readme.txt:把readme.txt文件在工作區(qū)的改動(dòng)全部撤銷(xiāo)

    • git remote :獲得遠(yuǎn)程庫(kù)列表

    • git remote -v :獲得遠(yuǎn)程倉(cāng)庫(kù)的具體信息
    • git remote rm [name] :刪除相應(yīng)的遠(yuǎn)程庫(kù)
    • git remote add origin git@github.com/hellochillax/SoftWareYard.git 關(guān)聯(lián)一個(gè)遠(yuǎn)程庫(kù)
    • git push -u origin master 第一次推送master分支的全部?jī)?nèi)容
    • git push origin master 推送最新改動(dòng)
    • git branch -u origin/master master 本地跟蹤遠(yuǎn)程

      Git鼓舞大量使用分支:

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

    • ssh-keygen -t rsa -C “hello@example.com” 創(chuàng)建SSH Key

    • git config –global user.name “Your Name” 設(shè)置username
    • git config –global user.email “email@example.com” 設(shè)置password

    命令行通用操作:
    pwd:顯示當(dāng)前路徑
    ls -ah:顯示文件列表(包含隱藏文件)
    cat readme.txt:顯示文件內(nèi)容
    rm readme.txt: 刪除文件

    ==========================我是華麗的分隔符==========================================

    時(shí)間過(guò)得真快,轉(zhuǎn)眼半年多過(guò)去了。實(shí)驗(yàn)室里的人都在忙著各種內(nèi)推面試。

    我也不例外。總體復(fù)習(xí)啊。這樣的酸爽。

    本來(lái)能夠不用考慮git的。可是內(nèi)推時(shí)手殘?jiān)诤?jiǎn)歷的個(gè)人技能部分寫(xiě)了一句“熟悉git、svn等版本號(hào)管理工具。

    ”所以還是再來(lái)復(fù)習(xí)一下git,并且再補(bǔ)充一點(diǎn)半年前沒(méi)有提到的知識(shí)點(diǎn)。

    也算為了面試官問(wèn)到時(shí)能不掉鏈子了。

    git的基本知識(shí)和經(jīng)常使用命令,上次都寫(xiě)得幾乎相同了。

    這次講講git分支的合并。

    一. fetch和pull的差別。

    這兩個(gè)命令的功能都是從遠(yuǎn)程的分支獲取最新的版本號(hào)到本地。可是有一定的差別。

    • 1.git fetch:相當(dāng)于是從遠(yuǎn)程獲取最新版本號(hào)到本地。不會(huì)自己主動(dòng)merge
    • 2.git pull:相當(dāng)于是從遠(yuǎn)程獲取最新版本號(hào)并merge到本地

    我們能夠用以下的三個(gè)命令來(lái)體會(huì)二者的差別:

    git fetch origin master:tmp
    git diff tmp
    git merge tmp

    在實(shí)際使用中,git fetch更安全一些
    由于在merge前,我們能夠查看更新情況,然后再?zèng)Q定是否合并.

    二. merge和rebase的差別。

    關(guān)于這個(gè)問(wèn)題,在stackoverflow上有個(gè)非常清晰明了的解釋,感興趣的能夠看一下:http://stackoverflow.com/questions/16666089/whats-the-difference-between-git-merge-and-git-rebase

    貌似須要梯子才干看。

    沒(méi)梯子也沒(méi)關(guān)系,我把內(nèi)容翻譯一遍。

    首先,假設(shè)我們的版本號(hào)庫(kù)眼下有三個(gè)提交。A,B,C,如圖:

    然后,此時(shí)有兩個(gè)開(kāi)發(fā)人員同一時(shí)候開(kāi)發(fā),當(dāng)中小王開(kāi)發(fā)了D,小李開(kāi)發(fā)了E,如圖:

    非常顯然,眼下已經(jīng)發(fā)生了沖突(合并時(shí)出現(xiàn)故障),我們解決這個(gè)沖突,有兩種方法:merge和rebase。

    假設(shè)採(cǎi)用merge:

    假設(shè)採(cǎi)用rebase:

    可是。有個(gè)小問(wèn)題:採(cǎi)用rebase時(shí)。可能會(huì)使虛線部分的提交丟失。所以有一定風(fēng)險(xiǎn)性,建議新手都用merge。

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

    《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專(zhuān)家共同創(chuàng)作,文字、視頻、音頻交互閱讀

    總結(jié)

    以上是生活随笔為你收集整理的Git--团队开发必备神器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

    主站蜘蛛池模板: 国产精品久久久久久久妇 | 四虎影视最新网址 | 一区二区视频在线免费观看 | 久草免费在线视频观看 | 免费色片 | 国产l精品国产亚洲区久久 午夜青青草 | 成人玩具h视频 | 夜夜夜操操操 | 国产福利在线视频 | 男人扒女人添高潮视频 | 欧美日韩国产区 | 中国精品久久久 | 午夜小视频在线 | 日韩xxx高潮hd | 亚洲另类欧美日韩 | 日韩av伦理 | 欧美亚洲一区二区三区四区 | 蜜桃av免费在线观看 | 久草视频这里只有精品 | 91一区二区三区在线 | 看黄色网址| 中文字幕精品无码亚 | 国产又大又黑又粗 | 青青操视频在线观看 | 欧美黄色三级 | 天堂在线视频tv | 一区二区三区福利 | 黄色成人在线免费观看 | 亚洲区第一页 | 国产剧情一区 | 黄色一集片 | 黄色小视频网 | 日韩大片免费在线观看 | av无遮挡 | 99久久国产宗和精品1上映 | 一区二区三区偷拍 | 午夜窝窝 | 亚洲色欧美另类 | 国产精品久久久久久久久久妞妞 | 精品不卡一区 | 欧美一区视频在线 | 中文在线观看视频 | 亚洲视频四区 | 日本福利网站 | 四季av国产一区二区三区 | 秋霞欧美一区二区三区视频免费 | 91看片网站 | 欧美性生活一区二区三区 | h亚洲| 欧美专区 日韩专区 | 中国一级黄色大片 | 国产在线综合网 | 国产欧美日韩综合精品一区 | 黄色调教视频 | 在线色网 | 梦梦电影免费高清在线观看 | 国产网红主播精品av | 国产91成人 | 我要看免费的毛片 | 欧美人与禽猛交乱配 | 五月婷中文字幕 | 欧美性色黄大片手机版 | 欧美视频免费在线观看 | 欧美比基尼 | 丰满少妇一区二区三区 | jjzz日本视频 | 日韩伦理一区二区 | yjizz视频网| 日韩经典第一页 | 欧美性猛交xxxx | 欧美色图88 | 9.1成人看片 | 久久久国产视频 | 玖玖视频网 | 无码人妻一区二区三区精品视频 | 人人干视频 | 日日噜噜夜夜狠狠久久丁香五月 | 麻豆蜜桃视频 | se婷婷 | 久久久xxx| 伊人亚洲 | 和黑帮大佬的365 | 自拍偷在线精品自拍偷无码专区 | 久99热 | 自拍偷拍第1页 | 中文在线视频 | 蜜桃视频在线观看污 | 久久99日韩 | 欧美性猛交ⅹxx | 欧美日韩中文国产一区发布 | 在线看毛片网站 | 69xxx免费视频 | 国产精品久久久久久吹潮 | 伊人精品久久 | 男女那个视频 | 91精品国产色综合久久不卡98口 | 国产日韩第一页 | 亚洲精品国产suv一区 | av永久网站 |