最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

工作中如何使用GIT開發(fā)項目?

2021-06-24 16:06 作者:自由的加百利  | 我要投稿

注意:?如果你熟悉Linux操作系統(tǒng),那么這篇文章閱讀速度會加倍

另外:?如果你熟悉SVN,那么Git只是一個更高級的版本管理工具而已

But:?如果不熟悉Linux,也不知道SVN,那么沒關(guān)系,至少你使用過云盤來管理你日常的文件

如果你連云盤都沒用過。那么你還是早點回火星吧,地球很危險的。

為啥需要版本管理?

假設(shè):


下周就要做年終工作匯報了,你打算今天把PPT做完。

反反復(fù)復(fù)用了一上午的時間,總算是完成了一半。

中午吃飯的時候,你依然在思考后半部分該怎么完成。

然后你突然間覺得,上午的方案有些問題,還需要再改一改

下午5點20分.....

在你反復(fù)閱讀自己的方案后, 仍然覺得,還是上午的方案更好

可這個時候麻煩來了?, 上午的方案早就被改的面目全非了

當(dāng)時寫的話術(shù),使用的圖片動畫等等,都已經(jīng)被你刪除了

想用Ctrl + Z解決? 可惜PPT最多只支持150次操作回退,默認(rèn)設(shè)置好像只有80次

這個時候,是不是特別想來一瓶后悔藥?

朋友,是時候了解一下百度云盤會員了。

不要998! 不要998! ,只要96元,就可享受包年服務(wù)

?

上面的付款是假的,真的付款碼在這里:

好了,剛才是個玩笑,?但百度云盤真的有記錄文件版本的功能

  • 因此,我們認(rèn)為,一個好用的云盤軟件,應(yīng)該具備以下幾個功能:

  • 1、用戶A和B之間能夠方便的進(jìn)行文件共享

  • 2、用戶A和B可以修改同一個文件,云盤能夠及時解決沖突問題

  • 3、用戶A對文件的修改提交后會同步給用戶B

  • 4、所有用戶對文件的每一次提交都會有記錄保存,操作失誤時,可以還原之前的版本

版本管理,?不正是因此而得名么?


SVN的優(yōu)勢?

在使用git之前,你必須了解一下SVN

說起來,SVN可是曾經(jīng)風(fēng)靡全球的版本管理工具

SVN軟件的使用,確實非常簡單

它有兩個安裝包

?

第二個安裝包是服務(wù)器端,也就是說,你可以通過安裝這個服務(wù)器端的軟件,很輕易的在公司內(nèi)部搭建一個SVN服務(wù)器

這樣大家就可以在公司內(nèi)網(wǎng)進(jìn)行文件或是 代碼的共享了

程序員在寫代碼時,經(jīng)常需要協(xié)同開發(fā)(多個人維護(hù)一個項目)

SVN帶來的方便,自然不言而喻,幾乎所有的主流開發(fā)工具,都會配有SVN的插件

SVN的具體用法,這里不再詳細(xì)描述。請讀者自行百度


有了SVN,為什么會出現(xiàn)Git?

git這個軟件的作者,是大名鼎鼎的Linus(Linux系統(tǒng)內(nèi)核的發(fā)明人,編程界神話級的程序員)

不得不說,git這個軟件,在易用性上,跟SVN差了不是一個數(shù)量級

但畢竟是專門給程序員用的,誰還考慮用戶體驗??

由于linus嚴(yán)重的個人興趣傾向,他非常不喜歡文件集中式的管理

于是git軟件打一開始就是分布式的

簡單的說:就是任何人都可以向任何人的電腦上提交代碼,任何人也可以從任何人的電腦上下載代碼,任何人都可以被看作服務(wù)器端

再加上linus這種崇尚命令行主導(dǎo)一切的思維,git這個軟件,打一開始就沒有圖形界面?

所以使用git的時候,特別有種當(dāng)黑客的感覺,有木有??

盡管,git率先發(fā)明了分支的設(shè)計,但是,這糟糕的用戶體驗,并沒能使它在全球范圍迅速流行起來,直到?github的出現(xiàn).....


git和github是啥關(guān)系?

github, 這個被大家戲稱為全球最大的同性交友網(wǎng)站

它是如何崛起的呢?


github網(wǎng)站提供了如下的服務(wù):

  • 1、你可以到這個網(wǎng)站注冊一個賬號

  • 2、通過這個賬號,你可以建立自己的倉庫

  • 3、使用你本地的git軟件將你的代碼提交到github服務(wù)器

  • 4、如果你的同事也注冊了github賬號,那你可以一鍵轉(zhuǎn)載分享給他

  • 5、github上面的項目都是可以公開分享給其他人看的

  • 6、我們不提供交友,只能提供代碼分享及管理

你可以看到,github給我們帶來了兩個巨大的好處

第一?github讓我們似乎又回到了SVN的服務(wù)器時代,方便。

第二?全世界所有知名的開源代碼,都提交到了github上面并公開,這樣一來,所有人都可以向這個開源項目提交自己的修改建議

它帶動了git軟件的流行,這就是今天你不得不學(xué)git的原因


git到底咋用?

首先,下個一個git軟件?https://git-scm.com/downloads,并安裝

在github上,建立一個空的project

建好項目后,會看到項目的地址

現(xiàn)在,把項目的下載地址復(fù)制好了

找到一個合適的目錄,例如E盤,在該目錄下點擊右鍵選擇git bash here

輸入命令?git clone https://github.com/ay8yt/teach.git

項目就會自動下載,這時E盤會多出一個teach目錄

好了,你現(xiàn)在可以打開你的開發(fā)工具,到這個目錄下,編寫你的代碼了

1 項目寫完了,咋提交呢?

在命令行使用cd teach,進(jìn)入teach目錄

輸入命令:?git add -A?, 將所有文件添加至緩存區(qū),準(zhǔn)備提交

然后,輸入git commit -m '這里可以做一些描述,本次做了哪些修改'

提交成功!

可能還需要一些準(zhǔn)備工作

如果你第一次使用git,提交時,系統(tǒng)會提示你先設(shè)置用戶信息,那我們就設(shè)置一下:

git config --global user.email "隨便郵箱"

git config --global user.name "隨便用戶名"

另外,由于項目通常是多人開發(fā),你必須建立一個自己的分支

我知道你一定想問,?啥是分支? 。。。。。這個說來有點話長了

假設(shè)張三和李四要共同開發(fā)一個項目

雖然,他們倆負(fù)責(zé)的是不同的模塊

但是,張三的模塊如果出了BUG或者錯誤,會導(dǎo)致李四的項目也無法啟動

為了避免沖突和互相干擾

張三和李四在開發(fā)之前,都把項目進(jìn)行了一次克隆拷貝

接下來,他們分別在自己克隆的副本上進(jìn)行修改和提交

接下來,張三就可以在自己的副本上進(jìn)行修改和提交,和李四不會產(chǎn)生任何沖突

這就是分支的概念了

當(dāng)然,張三的所有操作都是在自己的電腦本地進(jìn)行的

如果本地電腦出了問題,本地記錄的版本依然會全部丟失

所以,張三可以把自己本地的全部版本都推送到遠(yuǎn)程github服務(wù)器上

同樣,李四也可以把自己本地的全部版本都推送到遠(yuǎn)程github服務(wù)器上

這時,我們查看github遠(yuǎn)程,會發(fā)現(xiàn)變成了這樣:



這樣一來,我們不僅把所有人的版本做了記錄,而且整個開發(fā)過程中,張三和李四沒有任何交集,也不會產(chǎn)生任何沖突

怎么樣?有沒有感覺這個分支的發(fā)明特別的帥氣?

盡管SVN后來也迅速的推出了分支的功能,但它沒有一個像github這么流行并統(tǒng)一的服務(wù)器。

github不僅提供了代碼的托管,現(xiàn)在已經(jīng)演變成了全球最大的代碼分享社區(qū)

并在2018年6月份,以75億美元的價格,賣給了微軟

留給SVN的,只有一首《涼涼》

了解了基本原理,還是得學(xué)學(xué)具體如何使用

1. 怎么把gibhub上新建的項目down下來?

如果你還有這樣的疑問,顯然你沒有好好聽課,因為上面已經(jīng)講過了。

算了,再說一次,下不為例。git clone https://github.com/ay8yt/teach.git

2. 怎么在本地克隆一個副本,也就是創(chuàng)建一個分支?

使用branch命令。git branch yintao01

3. 怎么進(jìn)入這個分支呢?

git checkout yintao01

好了,你現(xiàn)在應(yīng)該能很明顯的看到,你已經(jīng)切換到了自己的分支,接下來的所有操作,都在這個副本上進(jìn)行。

4. 寫了一部分功能,想保存一個版本,怎么做?

第一步,git add -A, 所有文件提交到緩存區(qū)

5.等等! 我有些文件不想提交,例如 node_modules文件夾,怎么忽略它?

你要在項目的根目錄下,創(chuàng)建一個叫做.gitignore的文件,內(nèi)容如下:

6.可是我剛才已經(jīng)把不需要的文件提交到緩存區(qū)了,怎么撤銷?

很簡單,重置一下,git reset,然后就可以提交了。

7.等等!我想在正式提交之前,先查看一下,都有哪些文件提交到了緩存區(qū)?

你TM事兒真多!好吧,你可以使用git status命令查看,都做了哪些改動,以及所有文件的狀態(tài)。

8.好了,那正式提交是不是commit命令?

沒錯!使用git commit -m '這里一定要把做了什么修改寫清楚'

9.每次提交一個版本都得寫?。?那多麻煩? 不寫清楚行嗎?

你可以試試,把你腸子悔青。

10.剛提交完,就后悔了,感覺提交錯了,想撤銷這次提交,或覆蓋這次提交,怎么做?

版本管理的好處,就是允許你后悔,首先你把錯誤的內(nèi)容先修復(fù)好

然后再次add添加緩存,但這次提交時,注意使用git commit --amend -m '剛才的提交就覆蓋了'

11.我想直接還原到上一個版本,怎么做?

使用git reset head^

12.我想直接還原到前兩個版本,怎么做?

使用git reset head^^

13.那還原到前N個版本呢?

git reset head^^^^^^^^^^...

14.你逗我呢? 這么麻煩?

沒開玩笑,就是這樣,當(dāng)然你可以指定版本號直接還原

git reset --hard?7e2ec0f51e9ae2e7cbc7c4deca18b77b242148d6

15.版本號是個哈希值? 這么長咋記得住?

你可以用git log查看所有版本

16.我查了,可是每個版本都改了什么看不到啊,這aaaaa,bbbb,cccc,dddd都是什么鬼?

這不都是你自己提交時寫的注釋么? 不認(rèn)真寫注釋的下場就是這樣。活該。

另外,任何時候?qū)懘a,一定要想清楚了,測試通過了再提交,這是程序員的基本素質(zhì)。

回滾操作雖然好用,但它不應(yīng)該成為你的日常命令。如果一個程序員把各種回滾操作用的特別熟

通常表明他的代碼水平不怎么樣。

17.我看你用的就挺熟的呀

滾~~~~~~

18.如果本地我已經(jīng)測試完并提交了,怎么推送到遠(yuǎn)程github上面?

為了方便做遠(yuǎn)程推送,通常我們會給遠(yuǎn)程倉庫地址做個快捷方式。

git remote add miaodong https://git.oschina.net/ay8yt/test.git

這個miaodong就是快捷名稱,接下來你提交時,就可以這樣寫:

git push -u miaodong yintao01?這句話的意思就是把yintao01這個分支推送到miaodong這個倉庫地址

-u?的意思就是把yintao01設(shè)為默認(rèn)分支

下次再推送,就可以直接寫git push miaodong

19.我的模塊已經(jīng)開發(fā)完成,并測試通過,也推送到了github上,怎么把我的分支合并回主分支

在github上合并分支非常簡單,找到Pull request,自己看說明去吧

至此,你已經(jīng)掌握了日常工作中g(shù)it的基本使用




工作中如何使用GIT開發(fā)項目?的評論 (共 條)

分享到微博請遵守國家法律
普安县| 红桥区| 砀山县| 营口市| 南宁市| 廊坊市| 禹城市| 雷州市| 波密县| 琼中| 扶余县| 平阴县| 石门县| 彭州市| 永德县| 子洲县| 永寿县| 阿合奇县| 甘南县| 海门市| 兴化市| 宁安市| 黑山县| 榆树市| 五台县| 宝坻区| 贡山| 广灵县| 金塔县| 富顺县| 慈利县| 张家界市| 罗山县| 芜湖县| 迁西县| 陕西省| 乐山市| 弋阳县| 无极县| 清远市| 鄂伦春自治旗|