目錄
- 1.git 簡(jiǎn)介
- 1.1 產(chǎn)生歷史
- 1.2 git兩大特點(diǎn)
- 2.安裝配置
- 3.創(chuàng)建一個(gè)版本庫
- 4.版本的創(chuàng)建與回退
- 4.1 使用
- 4.2 工作區(qū)和緩存區(qū)
- 4.3 管理修改
- 4.4 撤銷修改
- 4.5 對(duì)比文件的不同
- 4.6 刪除文件
- 5. 分支管理
- 5.1概念
- 5.2 創(chuàng)建與合并分支
- 5.3 解決沖突
- 5.4 分支管理策略
- 5.5 Bug分支
- 6.使用github
- 6.1 創(chuàng)建倉庫
- 6.2 添加ssh賬戶
- 6.3 克隆項(xiàng)目
- 6.4 上傳分支/推送代碼
- 6.5 將本地分支跟蹤服務(wù)器分支
- 6.6 從遠(yuǎn)程分支上拉取代碼
- 7.工作使用git
- 8.思維導(dǎo)圖筆記
1.git 簡(jiǎn)介
1.1 產(chǎn)生歷史
git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng)。
Linus在1991年創(chuàng)建了開源的Linux,從此,Linux系統(tǒng)不斷發(fā)展,已經(jīng)成為最大的服務(wù)器系統(tǒng)軟件了。Linus雖然創(chuàng)建了Linux,但Linux的壯大是靠全世界熱心的志愿者參與的,這么多人在世界各地為L(zhǎng)inux編寫代碼,那Linux的代碼是如何管理的呢?事實(shí)是,**在2002年以前,世界各地的志愿者把源代碼文件通過diff的方式發(fā)給Linus,然后由Linus本人通過手工方式合并代碼!你也許會(huì)想,為什么Linus不把Linux代碼放到版本控制系統(tǒng)里呢?不是有CVS、SVN這些免費(fèi)的版本控制系統(tǒng)嗎?因?yàn)長(zhǎng)inus堅(jiān)定地反對(duì)CVS和SVN,這些集中式的版本控制系統(tǒng)不但速度慢,而且必須聯(lián)網(wǎng)才能使用。有一些商用的版本控制系統(tǒng),雖然比CVS、SVN好用,但那是付費(fèi)的,和Linux的開源精神不符。不過,到了2002年,Linux系統(tǒng)已經(jīng)發(fā)展了十年了,代碼庫之大讓Linus很難繼續(xù)通過手工方式管理了,社區(qū)的弟兄們也對(duì)這種方式表達(dá)了強(qiáng)烈不滿,于是Linus選擇了一個(gè)商業(yè)的版本控制系統(tǒng)BitKeeper,BitKeeper的東家BitMover公司出于人道主義精神,授權(quán)Linux社區(qū)免費(fèi)使用這個(gè)版本控制系統(tǒng)。**安定團(tuán)結(jié)的大好局面在2005年就被打破了,原因是Linux社區(qū)牛人聚集,不免沾染了一些梁山好漢的江湖習(xí)氣。開發(fā)Samba的Andrew試圖破解BitKeeper的協(xié)議(這么干的其實(shí)也不只他一個(gè)),被BitMover公司發(fā)現(xiàn)了(監(jiān)控工作做得不錯(cuò)!),于是BitMover公司怒了,要收回Linux社區(qū)的免費(fèi)使用權(quán)。Linus可以向BitMover公司道個(gè)歉,保證以后會(huì)嚴(yán)格管教弟兄們,嗯,這是不可能的。實(shí)際情況是這樣的:
Linus花了兩周時(shí)間自己用C寫了一個(gè)分布式版本控制系統(tǒng),這就是Git!一個(gè)月之內(nèi),Linux系統(tǒng)的源碼已經(jīng)由Git管理了!牛是怎么定義的呢?大家可以體會(huì)一下。Git迅速成為最流行的分布式版本控制系統(tǒng),尤其是2008年,GitHub網(wǎng)站上線了,它為開源項(xiàng)目免費(fèi)提供Git存儲(chǔ),無數(shù)開源項(xiàng)目開始遷移至GitHub,包括jQuery,PHP,Ruby等等。歷史就是這么偶然,如果不是當(dāng)年BitMover公司威脅Linux社區(qū),可能現(xiàn)在我們就沒有免費(fèi)而超級(jí)好用的Git了。
1.2 git兩大特點(diǎn)
版本控制:可以解決多人同時(shí)開發(fā)的代碼問題,也可以解決找回歷史代碼的問題。
分布式:Git是分布式版本控制系統(tǒng),同一個(gè)Git倉庫,可以分布到不同的機(jī)器上。首先找一臺(tái)電腦充當(dāng)服務(wù)器的角色,每天24小時(shí)開機(jī),其他每個(gè)人都從這個(gè)“服務(wù)器“倉庫克隆一份到自己的電腦上,并且各自把各自的提交推送到服務(wù)器倉庫里,也從服務(wù)器倉庫中拉取別人的提交。可以自已搭建這臺(tái)服務(wù)器,也可以使用GitHub網(wǎng)站。
2.安裝配置
Windows安裝鏈接
一路點(diǎn)Next即可,安裝位置就放在C盤。
裝好git后
在終端里面敲入git,
出現(xiàn)這樣的畫面就表示你的git裝好了,此處應(yīng)該有掌聲~~
3.創(chuàng)建一個(gè)版本庫
(1)新建一個(gè)目錄git_test,在git_test目錄下創(chuàng)建一個(gè)版本庫,命令如下:
接著初始化倉庫
說明:可以看到在git_test目錄下創(chuàng)建了一個(gè).git隱藏目錄,這就是版本庫目錄。
4.版本的創(chuàng)建與回退
4.1 使用
(1)在git_test目錄下創(chuàng)建一個(gè)文件code.txt,編輯內(nèi)容如下:
(2)使用如下兩條命令可以創(chuàng)建一個(gè)版本:
git add code.txt
git commit -m “版本1”
(3)使用如下命令可以查看版本記錄:
(4)繼續(xù)編輯code.txt,在里面增加一行。
(5)使用如下命令再創(chuàng)建一個(gè)版本并查看版本記錄:
(6)現(xiàn)在若想回到某一個(gè)版本,可以使用如下命令:
其中HEAD表示當(dāng)前最新版本【請(qǐng)記死】,HEAD^表示當(dāng)前版本的前一個(gè)版本,HEAD^^
表示當(dāng)前版本的前前個(gè)版本,也可以使用HEAD~1
表示當(dāng)前版本的前一個(gè)版本,HEAD~100
表示當(dāng)前版本的前100版本。
因?yàn)榘姹?的內(nèi)容是1行:
this is the first line
因?yàn)榘姹?的內(nèi)容是2行:
this is the first line
this is the second line
因?yàn)?br />
$ git reset --hard HEAD^ HEAD is now at 51d36c7 版本1
使指針HEAD指向(倒退)到版本1,
因此打印的內(nèi)容就是版本1的內(nèi)容,即this is the first line
(7)假如我們現(xiàn)在又想回到版本2,這個(gè)時(shí)候怎么辦?可以使用如下命令:
git reset --hard 版本號(hào)
(8)在終端執(zhí)行如下命令:
版本2又回來了,內(nèi)容也是原來的內(nèi)容。
接著玩
退出終端,再重進(jìn):
這個(gè)重進(jìn)終端的操作讓我們看不到版本2的版本號(hào),要回到版本2怎么辦?
命令:git reflog來查看操作記錄。
錯(cuò)誤示例:
原因是按照當(dāng)前版本1倒退的話,怎么也不會(huì)前進(jìn)到版本2吧?邏輯錯(cuò)誤。
正確實(shí)例:
要用到版本號(hào)。
查看版本2的內(nèi)容:
不理解版本1,版本2有啥區(qū)別?
這個(gè)東西像游戲更新一樣,版本2是在版本1的基礎(chǔ)上添加新功能的,版本1內(nèi)容不發(fā)生改變。例如王者榮耀版本更新,界面總會(huì)變化,但是英雄的屬性(技能,名字)一般不會(huì)改變。
4.2 工作區(qū)和緩存區(qū)
4.2.1 工作區(qū)(WorkingDirectory)
工作區(qū)(WorkingDirectory) 電腦中的目錄,比如我們的git_test,就是一個(gè)工作區(qū)。
4.2.2 版本庫(Repository)
工作區(qū)有一個(gè)隱藏目錄.git
,這個(gè)不是工作區(qū),而是git的版本庫。git的版本庫里存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區(qū),還有g(shù)it為我們自動(dòng)創(chuàng)建的第一個(gè)分支master,以及指向master的一個(gè)指針叫HEAD。
因?yàn)槲覀儎?chuàng)建git版本庫時(shí),git自動(dòng)為我們創(chuàng)建了唯一一個(gè)master分 支,所以,現(xiàn)在,git commit就是往master分支上提交更改。
你可以簡(jiǎn)單理解為,需要提交的文件修改通通放到暫存區(qū)【計(jì)算機(jī)的緩存區(qū)】,然后,一次性提交暫存區(qū)的所有修改。
前面講了我們把文件往版本庫里添加的時(shí)候,是分兩步執(zhí)行的:
第一步是用git add把文件添加進(jìn)去,實(shí)際上就是把文件修改添加到暫存區(qū)
第二步是用git commit提交更改,實(shí)際上就是把暫存區(qū)的所有內(nèi)容提交到當(dāng)前分支。
(1)下面在git test目錄下再創(chuàng)建一個(gè)文件code2.txt,然后編輯內(nèi)容如下:
(2)然后編輯code.txt,操作如下:
注意的是創(chuàng)建文件和編輯文件都是在工作區(qū)里完成。
(3)使用如下命令查看當(dāng)前工作樹的狀態(tài):
翻譯一下:
上面提示我們code.txt被修改,而code2.txt沒有被跟蹤。
(4)我們使用如下命令把code.txt和code2.txt加入到暫存區(qū),然后再執(zhí)行g(shù)it status命令,結(jié)果如下:
注意:所有的 git add 命令是把所有提交的修改存放到暫存區(qū)。
(5)然后,執(zhí)行g(shù)it commit就可以一次性把暫存區(qū)的所有修改提交到分支并創(chuàng)建一個(gè)版本。
注意:指針HEAD永遠(yuǎn)指向當(dāng)前版本。此時(shí)當(dāng)前版本是版本3。
(6)一旦提交后,如果你又沒有對(duì)工作區(qū)做任何修改,那么工作區(qū)就是“干凈”的。執(zhí)行如下命令可以發(fā)現(xiàn):
現(xiàn)在我們的版本庫變成了醬紫:
4.3 管理修改
git管理的文件的修改,它只會(huì)提交暫存區(qū)的修改來創(chuàng)建版本。
(1)編輯code.txt,并使用git add命令將其添加到暫存區(qū)中。
(2)繼續(xù)編輯code.txt,并在其中添加一行。
(3)git commit創(chuàng)建一個(gè)版本,并使用git status查看,發(fā)現(xiàn)第二次修改code.txt內(nèi)容之后,并沒有將其添加的工作區(qū),所以創(chuàng)建版本的時(shí)候并沒有被提交。
注意:對(duì)于code.txt里的四行內(nèi)容,每一個(gè)版本對(duì)應(yīng)一行,例如版本1對(duì)應(yīng)first line,以此類推。
4.4 撤銷修改
(1)繼續(xù)上面的操作,提示我們可使用git checkout – 文件>來丟棄工作區(qū)的改動(dòng)。執(zhí)行如下命令,發(fā)現(xiàn)工作區(qū)干凈了,第二次的改動(dòng)內(nèi)容也沒了。
(2)我們繼續(xù)編輯code.txt,并在其中添加如下內(nèi)容,并將其添加的暫存區(qū)。
(3)git同樣告訴我們,用命令git reset HEAD file可以把暫存區(qū)的修改撤銷掉,重新放回工作區(qū)。
(4)現(xiàn)在若想丟棄code.txt的修改,執(zhí)行如下命令即可。
現(xiàn)在,如果你不但改錯(cuò)了東西,還從暫存區(qū)提交到了版本庫,則需要進(jìn)行版本回退。
小結(jié):
場(chǎng)景1:當(dāng)你改亂了工作區(qū)某個(gè)文件的內(nèi)容,想直接丟棄工作區(qū)的修改時(shí),用 命令git checkout – file
場(chǎng)景2:當(dāng)你不但改亂了工作區(qū)某個(gè)文件的內(nèi)容,還添加到了暫存區(qū)時(shí),想丟棄修改,分兩步:
第一步用命令git reset HEAD – file,就回到了場(chǎng)景1,
第二步按場(chǎng)景1操作。
場(chǎng)景3:已經(jīng)提交了不合適的修改到版本庫時(shí),想要撤銷本次提交,參考版本回退一節(jié)。
4.5 對(duì)比文件的不同
對(duì)比工作區(qū)和某個(gè)版本中文件的不同:
(1)繼續(xù)編輯文件code.txt,在其中添加一行內(nèi)容。
(2)現(xiàn)在要對(duì)比工作區(qū)中code.txt和HEAD版本中code.txt的不同。使用如下命令:
(3)使用如下命令丟棄工作區(qū)的改動(dòng)。
對(duì)比兩個(gè)版本間文件的不同:
(1)現(xiàn)在要對(duì)比HEAD和HEAD ^版本中code.txt的不同,使用如下命令:
反過來
4.6 刪除文件
(1)我們把目錄中的code2.txt刪除。
這個(gè)時(shí)候,git知道刪除了文件,因此,工作區(qū)和版本庫就不一致了,git status命令會(huì)立刻提示哪些文件被刪除了。
(2)現(xiàn)在你有兩個(gè)選擇,一種情況是確實(shí)要從版本庫中刪除該文件,那就用命令 gitrm刪掉【永久刪除,無法撤消】,并且 git
commit:
另一種情況是刪錯(cuò)了,可以直接使用git checkout – code2.txt,這樣文件code2.txt又回來了。
注意:兩種情況有區(qū)別:
當(dāng)執(zhí)行第一種情況時(shí)【永久刪除,無法撤消】,再執(zhí)行第二種情況,會(huì)報(bào)錯(cuò):
加長(zhǎng)版:
簡(jiǎn)短版:
小結(jié):
命令rm 刪除是永久刪除,要恢復(fù)數(shù)據(jù)的話可以恢復(fù)/掃描硬盤;
命令git rm用于刪除一個(gè)文件。如果一個(gè)文件已經(jīng)被提交到版本庫,那么你永遠(yuǎn)不用擔(dān)心誤刪,但是要小心,你只能恢復(fù)文件到最新版本,你會(huì)丟失最近一次提交后你修改的內(nèi)容。
5. 分支管理
5.1概念
分支就是科幻電影里面的平行宇宙,當(dāng)你正在電腦前努力學(xué)習(xí)Git的時(shí)候,另一個(gè)你正在另一個(gè)平行宇宙里努力學(xué)習(xí)SVN。
如果兩個(gè)平行宇宙互不干擾,那對(duì)現(xiàn)在的你也沒啥影響。不過,在某個(gè)時(shí)間點(diǎn),兩個(gè)平行宇宙合并了,結(jié)果,你既學(xué)會(huì)了git又學(xué)會(huì)了SVN!
分支在實(shí)際中有什么用呢?
假設(shè)你準(zhǔn)備開發(fā)一個(gè)新功能,但是需要兩周才能完成,第一周你寫了50%的代碼,如果立刻提交,由于代碼還沒寫完,不完整的代碼庫會(huì)導(dǎo)致別人不能干活了。如果等代碼全部寫完再一次提交,又存在丟失每天進(jìn)度的巨大風(fēng)險(xiǎn)。
現(xiàn)在有了分支,就不用怕了。你創(chuàng)建了一個(gè)屬于你自己的分支,別人看不到,還繼續(xù)在原來的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到開發(fā)完畢后,再一次性合并到原來的分支上,這樣,既安全,又不影響別人工作。
5.2 創(chuàng)建與合并分支
git把我們之前每次提交的版本串成一條時(shí)間線,這條時(shí)間線就是一個(gè)分支。截止到目前只有一條時(shí)間線,在git里,這個(gè)分支叫主分支,即master分支。HEAD嚴(yán)格來說不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是當(dāng)前分支。
(1)一開始的時(shí)候,master分支是一條線,git用master指向最新的提交,再用HEAD指向master,就能確定當(dāng)前分支,以及當(dāng)前分支的提交點(diǎn):
每次提交,master分支都會(huì)向前移動(dòng)一步,這樣,隨著你不斷提交,master分支的線也越來越長(zhǎng)。
(2)當(dāng)我們創(chuàng)建新的分支,例如dev時(shí),git新建了一個(gè)指針叫dev,指向master相同的提交,再把HEAD指向dev,就表示當(dāng)前分支在dev上:
git創(chuàng)建一個(gè)分支很快,因?yàn)槌嗽黾右粋€(gè)dev指針,改變HEAD的指向,工作區(qū)的文件都沒有任何變化。
(3)不過,從現(xiàn)在開始,對(duì)工作區(qū)的修改和提交就是針對(duì)dev分支了,比如新提交一次后,dev指針往前移動(dòng)一步,而master指針不變:
(4)假如我們?cè)赿ev上的工作完成了,就可以把dev合并到master上。git怎么合并呢?最簡(jiǎn)單的方法,就是直接把master指向dev的當(dāng)前提交,就完成了合并:
git合并分支也很快,就改改指針,工作區(qū)內(nèi)容也不變。
(5)合并完分支后,甚至可以刪除dev分支。刪除dev分支就是把dev指針給刪掉,刪掉后,我們就剩下了一條master分支:
(1)執(zhí)行如下命令可以查看當(dāng)前有幾個(gè)分支并且看到在哪個(gè)分支下工作。
(2)下面創(chuàng)建一個(gè)分支dev并切換到其上進(jìn)行工作。
(3)下面我們修改code.txt內(nèi)容,在里面添加一行,并進(jìn)行提交。
(4)dev分支的工作完成,我們就可以切換回master分支:
查看code.txt,發(fā)現(xiàn)添加的內(nèi)容沒有了。因?yàn)槟莻€(gè)提交是在dev分支上,而master分支此刻的提交點(diǎn)并沒有變?!具@里需要細(xì)細(xì)品味一下】
(5)現(xiàn)在,我們把dev分支的工作成果合并到master分支上:
git merge命令用于合并指定分支到當(dāng)前分支。合并后,再查看code.txt的內(nèi)容,就可以看到,和dev分支的最新提交是完全一樣的。
注意到上面的rast-forward信息,Git告訴我們,這次合并是“快進(jìn)模式“,也就是直接把master指向dev的當(dāng)前提交,所以合并速度非???。
(6)合并完成后,就可以放心地刪除dev分支了,刪除后,查看branch,就只剩下master分支了。
小結(jié):
查看分支:git branch
創(chuàng)建分支:git branch name>
切換分支:git checkout name>
創(chuàng)建+切換分支:git checkout -b name>
合并某分支到當(dāng)前分支:git merge name>
刪除分支:git branch -d name>
5.3 解決沖突
合并分支往往也不是一帆風(fēng)順的。
(1)再創(chuàng)建一個(gè)新分支dev。
(2)修改code.txt內(nèi)容,并進(jìn)行提交。
(3)切換回master分支。
(4)在master的code.txt添加一行內(nèi)容并進(jìn)行提交。
這種情況下,git無法執(zhí)行"快速合并",只能試圖把各自的修改合并起來,但這種合并就可能會(huì)有沖突。
(5)執(zhí)行如下命令嘗試將dev分支合并到master分支上來。
沖突原因:
現(xiàn)在,master分支和dev分支各自都分別有新的提交,并且編輯了同一個(gè)文件,變成了這樣:
git告訴我們,code.txt文件存在沖突,必須手動(dòng)解決沖突后再提交。
最重要的一步:
(6)git status也可以告訴我們沖突的文件:
(7)查看code.txt的內(nèi)容。
(8)git用,========,>>>>>>>>
標(biāo)記不同分支的內(nèi)容,我們修改如下后保存:
(9)再提交。
(10)現(xiàn)在,master分支和dev分支變成了下圖所示:
(11)用帶參數(shù)的git log也可以看到分支的合并情況:
(12)最后工作完成,可以刪除dev分支:
5.4 分支管理策略
通常,合并分支時(shí),如果可能,git會(huì)用fast forward
模式,但是有些快速合并不能成功而且合并時(shí)沒有沖突,這個(gè)時(shí)候git會(huì)幫我們?cè)诤喜⒅笞鲆淮涡碌奶峤?,但這種模式下,刪除分支后,會(huì)丟掉分支信息?!緩棿罢f明信息】
(1)創(chuàng)建切換到dev分支下。
(2)新建一個(gè)文件code3.txt,編輯內(nèi)容如下,并提交一個(gè)commit。
(3)切換回master分支,編輯code.txt并進(jìn)行一個(gè)提交。
(4)合并dev分支的內(nèi)容到master分支。
(5)出現(xiàn)如下提示時(shí),這是因?yàn)檫@次不能進(jìn)行快速合并,所以git提示輸入合并說明信息,輸入之后合并內(nèi)容之后git會(huì)自動(dòng)創(chuàng)建一次新的提交。
按 :x
保存并退出。
(6)使用分支命令查看分支信息。
(7)刪除dev分支。
如果要強(qiáng)制禁用fast forward模式,git就會(huì)在merge時(shí)生成一個(gè)新的commit,這樣,從分支歷史上就可以看出分支信息。
(1)創(chuàng)建并切換到dev分支。
(2)修改code.txt內(nèi)容,并提交一個(gè)commit。
(3)切換回master分支。
(4)準(zhǔn)備合并dev分支,請(qǐng)注意–no-ff參數(shù),表示禁用Fast forward:
因?yàn)楸敬魏喜⒁獎(jiǎng)?chuàng)建一個(gè)新的commit,所以加上-m參數(shù),把commit描述寫進(jìn)去。
5.5 Bug分支
軟件開發(fā)中,bug就像家常便飯一樣,有了bug就需要修復(fù),在git中,由于分支是如此的強(qiáng)大,所以,
每個(gè)bug都可以通過一個(gè)新的臨時(shí)分支來修復(fù),修復(fù)后,合并分支,然后將臨時(shí)分支刪除。
(1)當(dāng)你接到一個(gè)修復(fù)一個(gè)代號(hào)001的bug的任務(wù)時(shí),很自然地,你想創(chuàng)建一個(gè)分支bug-001來修復(fù)它,但是,等等,當(dāng)前正在dev上進(jìn)行的工作還沒有提交:
建議先敲clear清屏。
并不是你不想提交,而是工作只進(jìn)行到一半,還沒法提交,預(yù)計(jì)完成還需1天時(shí)間。但是,必須在兩個(gè)小時(shí)內(nèi)修復(fù)該bug,怎么辦?
(2)git還提供了一個(gè)stash功能,可以把當(dāng)前工作現(xiàn)場(chǎng)“儲(chǔ)藏“起來,等以后恢復(fù)現(xiàn)場(chǎng)后繼續(xù)工作:
(3)首先確定要在哪個(gè)分支上修復(fù)bug,假定需要在master分支上修復(fù),就從master創(chuàng)建臨時(shí)分支:
(4)現(xiàn)在修復(fù)bug,這里假設(shè)把code.txt里的第9行刪掉,然后提交。
(5)修復(fù)完成后,切換到master分支,并完成合并,最后刪除bug-001分支。
(6)現(xiàn)在bug-001修復(fù)完成,是時(shí)候接著回到dev分支干活了!
(7)工作區(qū)是干凈的,剛才的工作現(xiàn)場(chǎng)存到哪去了?用git stash list命令看看:【幫助我們列出保存的工作現(xiàn)場(chǎng)】
工作現(xiàn)場(chǎng)還在,git把stash內(nèi)容存在某個(gè)地方了,需要恢復(fù)一下:
小結(jié):
修復(fù)bug時(shí),我們會(huì)通過創(chuàng)建新的bug分支進(jìn)行修復(fù),然后合并,最后刪除;
當(dāng)手頭工作沒有完成時(shí),先把工作現(xiàn)場(chǎng)git stash
一下,然后去修復(fù)bug,修復(fù)后,再git stash pop
,恢復(fù)工作現(xiàn)場(chǎng)。
6.使用github
6.1 創(chuàng)建倉庫
(1)注冊(cè)github賬戶
登錄后,點(diǎn)擊"New respository"
(2)在新頁面中,輸入項(xiàng)目的名稱【如2020】,勾選'readme.md',點(diǎn)擊'Create repository'
這里完成。
6.2 添加ssh賬戶
(1)點(diǎn)擊賬戶頭像后的下拉三角,選擇'settings'如果某臺(tái)機(jī)器需要與github上的倉庫交互,那么就要把這臺(tái)機(jī)器的ssh公鑰添加到這個(gè)github賬戶上。
(2)在git的命令行中,回到用戶的主目錄下,編輯文件.gitconfig
,修改某臺(tái)機(jī)器的git配置。
修改為注冊(cè)github時(shí)的郵箱,填寫用戶名。
完美:
6.3 克隆項(xiàng)目
接著:
6.4 上傳分支/推送代碼
(1)項(xiàng)目克隆到本地之后,執(zhí)行如下命令創(chuàng)建分支:
(2)創(chuàng)建一個(gè)views.py并提交一個(gè)版本:
(3)推送前github上文件列表如下圖:
(4)推送前github上分支列表如下圖:
(5)推送分支,就是把該分支上的所有本地提交推送到遠(yuǎn)程庫,推送時(shí)要指定本地分支,這樣,git就會(huì)把該分支推送到遠(yuǎn)程庫對(duì)應(yīng)的遠(yuǎn)程分支上:
git push origin
分支名稱
例:
(6)再次查看github分支:
接下來操作重新加載頁面:
點(diǎn)擊smart,再點(diǎn)擊views.py,如圖所示:
6.5 將本地分支跟蹤服務(wù)器分支
git branch --set-upstream-to=origin/遠(yuǎn)程分支名稱 本地分支名稱
例:
git branch --set-upstream-to=origin/smart smart
我的社交網(wǎng)址:https://github.com/Keegan-y
6.6 從遠(yuǎn)程分支上拉取代碼
git pull orgin
分支名稱
例:
使用上述命令會(huì)把遠(yuǎn)程分支smart上的代碼下載并合并到本地所在分支。
7.工作使用git
項(xiàng)目經(jīng)理:
(1)項(xiàng)目經(jīng)理搭建項(xiàng)目的框架。
(2)搭建完項(xiàng)目框架之后,項(xiàng)目經(jīng)理把項(xiàng)目框架代碼放到服務(wù)器。
普通員工:
(1)在自己的電腦上,生成ssh公鑰,然后把公鑰給項(xiàng)目經(jīng)理,項(xiàng)目經(jīng)理把它添加的服務(wù)器上面。
(2)項(xiàng)目經(jīng)理會(huì)給每個(gè)組員的項(xiàng)目代碼的地址,組員把代碼下載到自己的電腦上。
(3)創(chuàng)建本地的分支dev,在dev分支中進(jìn)行每天的開發(fā)。
(4)每一個(gè)員工開發(fā)完自己的代碼之后,都需要將代碼發(fā)布遠(yuǎn)程的dev分支上。
項(xiàng)目里一般會(huì)有兩個(gè)分支,如:
Master:用于保存發(fā)布的項(xiàng)目代碼。
Dev:用于保存開發(fā)過程中的代碼。所有的組員開發(fā)完自己的代碼提交到該分支上。
到此,git使用教程就寫完了,既是自己的實(shí)踐記錄【記不住哈哈】,也能幫助更多的道友管理控制代碼,如果內(nèi)容對(duì)讀者有用,請(qǐng)關(guān)注我,為思考點(diǎn)贊!
最后奉上導(dǎo)圖筆記:
8.思維導(dǎo)圖筆記
到此這篇關(guān)于git使用教程(最詳細(xì)、最傻瓜)的文章就介紹到這了,更多相關(guān)git使用教程內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- 手把手教你使用Git(圖文教程)
- Git 命令行教程及實(shí)例教程(附github注冊(cè))
- Git的簡(jiǎn)單理解及基礎(chǔ)操作命令詳解
- Git ssh 配置及使用方法
- Git 常用命令速查表(圖文+表格)
- git工具常用命令及ssh操作方法