Git是目前世界上最先進的分布式版本控制系統(tǒng),也是當(dāng)下最流行的版本控制,不管是IT行業(yè)获搏,還是小說家等等虑粥,使用了Git都會給我們帶來許多便利如孝。
官網(wǎng):https://git-scm.com
首先到官網(wǎng)下載最新git版本:
windows下安裝git:
筆者沒錢買蘋果電腦,在此就給大家演示windows下安裝git的步驟吧娩贷。
1暑竟、點擊剛下載好的最新git安裝文件,然后點擊“Next”育勺;
2但荤、選擇安裝目錄,我習(xí)慣把軟件安裝到D盤涧至,這個你們隨意就好腹躁;
3、
配置安裝組件
默認即可南蓬,點擊“Next”;
默認已經(jīng)都幫我們否選上了纺非。包括創(chuàng)建桌面快捷方式、Git Bash赘方、Git GUi烧颖、已經(jīng)目錄和后綴關(guān)聯(lián)等。
4窄陡、在“Adjusting your PATH environment”選項中炕淮,默認即可。點擊“Next”跳夭。
這個步驟最好選擇第二項“Use Git from the Windows Command Prompt”涂圆, 這樣在Windows的命令行cmd中也可以運行g(shù)it命令了。這樣會對以后的一些操作帶來方便币叹;
5润歉、使用默認配置Use the OpenSLL library
6、配置行結(jié)束標(biāo)記颈抚,保持默認“Checkout Windows-style, commit Unix-style line endings”.
7踩衩、在終端模擬器選擇頁面,默認即可,配置后Git Gash的終端比較易用。
8驱富、最后配置Git額外選擇默認即可锚赤。然后點擊“Install”開始安裝。如果之前安裝過舊版本萌朱,會先卸載然后再安裝新版本宴树。
最后成功完成了安裝。
那么有人會問晶疼,怎樣判斷git安裝是否成功呢酒贬,很簡單,打開git在命令行輸入:git翠霍,按回車結(jié)果如下:
如果您看到有這些提示锭吨,就證明git安裝成功了,這些都是git常見的命令寒匙,接下來我們就開始一起從零學(xué)習(xí)git命令吧零如!
如果看不懂上面的英文,連大概意思都不知道锄弱,那就要多多請教Google翻譯了考蕾,哈哈,我也是這樣過來的会宪。
git的基本使用方法:
-
git status: Show the workingtree status
輸入git status命令查看當(dāng)前狀態(tài):
提示意思就是當(dāng)前目錄還不是一個git目錄肖卧,所以要先切換到git倉庫目錄下再進行g(shù)it操作;在進行任何git操作之前掸鹅,先要切換到git倉庫目錄塞帐,也就是要切換到項目的文件目錄下,切記巍沙、切記葵姥、切記!
-
git init:Create anempty Git repository or reinitialize an existing one
初始化倉庫的命令句携,切換到倉庫目錄榔幸,輸入git init,接著我們再次執(zhí)行第1步操作git status查看當(dāng)前狀態(tài)务甥,這里我的倉庫是test項目里面有個a.md文件牡辽,這時你可以看到test倉庫已經(jīng)被初始化了,默認就直接在master主分支上敞临,a.md文件Untrackedfiles,意思就是a.md文件還沒有被跟蹤麸澜,還沒有提交在git倉庫里挺尿,并且提示我們可以使用“git add”來提交你想要提交的文件。
3.git add:Add filecontents to the index
接著上一步,我們就隨便更新下a.md文件然后使用git add a.md將a.md添加到git倉庫上编矾,并git status查看下當(dāng)前狀態(tài):
這里可以看到文件a.md的提示:Changes to be committed熟史;意思就是a.md文件等待被提交,當(dāng)然你可以使用“git rm --cached”命令去移除當(dāng)前的緩存窄俏;相信你對git add已經(jīng)了解了吧蹂匹;
-
git commit: Record changes tothe repository
接著我們就開始第一次提交了,git commit –m ‘提交的內(nèi)容說明’;到這一步應(yīng)該都知道是什么意思了凹蜈,commit是提交的意思限寞,-m代表要提交的信息; 正常來說是要提交成功了仰坦,但是由于初次使用履植,git用戶信息還沒配置好:
git config --globaluser.email "you@example.com"
git config --globaluser.name "Your Name"
按照此格式分別對應(yīng)設(shè)置好用戶郵箱和用戶名就可以了玫霎;
到這里已經(jīng)配置好用戶信息,不過上面所執(zhí)行的是全局設(shè)置妈橄,如果某個項目需要用特定的郵箱或用戶名來提交的話庶近,只要將git切換到某個項目,把—-global去掉眷蚓,再重新配置一次就Ok了鼻种;
接著我們就來完成我們期待已久的“第一次提交吧”!
輸入git commit –m ‘my first commit’
前面也說了溪椎,我們沒事的時候就多用git status普舆,哈哈! git log : Show commit logs
提交成功后,我們可以輸入git log,這時就能看到我們提交的信息包括作者和內(nèi)容校读;git branch :List, create, or delete branches
branch為分支的意思沼侣,在團隊協(xié)作開發(fā)中發(fā)揮了很大作用,比如一個團隊有甲乙兩人歉秫,他們分別開發(fā)不同的功能模塊蛾洛,這時甲乙就可以分別創(chuàng)建自己的分支來提交代碼,互不干擾雁芙,等功能寫好了再統(tǒng)一合并代碼轧膘。
在前面我們執(zhí)行g(shù)it init初始化倉庫后都會默認生成一個默認主分支master,我們輸入git branch可以查看當(dāng)前分支情況:
帶著*號的master就是我們當(dāng)前的主分支兔甘,這時要團隊開發(fā)了谎碍,我想在此基礎(chǔ)上創(chuàng)建一個分支a提交我的代碼,接著可以輸入 git branch a 創(chuàng)建分支a;
這時我們輸入git branch 查看當(dāng)前分支情況:
- git checkout:Switch branches or restore working tree files
上面確實是創(chuàng)建了分支a,分支a的內(nèi)容確實是和分支master一模一樣的洞焙,但是分支a前面沒有號蟆淀,證明當(dāng)前位置沒有在a分支上拯啦,所以要切換到分支a上,使用git checkout a 執(zhí)行這個命令后再次輸入git branch熔任,這時a分支前面已經(jīng)有了號了褒链,這時我就可以在a分支上隨便改代碼了。
這時如果覺得這樣先創(chuàng)建再切換到分支a上疑苔,有點麻煩的話甫匹,當(dāng)然你可以一步完成此操作:git –b a
就是這樣就可以代替上面兩步了。
8.git merge: Join two or more development historiestogether
意思就是合并分支的命令惦费,就比如上面a分支的項目都完成了兵迅,這時就需要用到這個命令來合并;首先需要切換到主分支master趁餐,然后執(zhí)行g(shù)it merge a 正常情況下就合并分支成功了喷兼。
9 . git branch –d
刪除分支的命令,有兩種情況可以使用該命令后雷;第一種情況:假如上面新建的a分支的命名錯了,可以使用該命令刪除季惯;第二種情況:新建的a分支已經(jīng)合并到主分支上了,那么a分支就不需要了臀突,可以使用該命令刪除勉抓;在執(zhí)行該命令前要確保當(dāng)前位置是在主分支上;
git branch –D
強制刪除分支的命令候学,有時候使用git branch –d命令去刪除分支可能會刪除失敗藕筋,比如a分支上已經(jīng)提交代碼了,這時如果你想執(zhí)行g(shù)it branch –d去刪除這個分支梳码,那肯定是不行了隐圾,系統(tǒng)會提示說,該分支還沒有合并代碼到主分支上掰茶,所以我們可以使用git branch –D去強制刪除就可以了暇藏。-
git tag :
新建標(biāo)簽的意思楣颠,可以給當(dāng)前狀態(tài)下的代碼添加一個標(biāo)簽图焰,方便下次查看修改;現(xiàn)在我要在a分支上新建了一個標(biāo)簽為tag1玉锌,只需輸入git tag tag1 就可以了沪伙,然后可以輸入git tag來查看新建的標(biāo)簽記錄瓮顽。
至此,git的基本用法也差不多是這些了围橡,很基礎(chǔ)很基礎(chǔ)的用法暖混,必須要懂才能繼續(xù)深入研究, 接下來就可以試著提交代碼到遠程服務(wù)器了 come on !
開始提交代碼到遠程倉庫----GitHub:
1.SSH和HTTPS
如果要向GitHub上提交代碼的話翁授,主要會用到SSH或者HTTPS儒恋,說白了就是一種網(wǎng)絡(luò)協(xié)議善绎,最終目的都是向GitHub上提交自己的代碼黔漂,不同的地方按我的理解就是:SSH是經(jīng)過RSA公私鑰加密處理的诫尽,相對于HTTPS更加安全點,在使用之前就要先配置好SSH key炬守,之后提交代碼就不在需要輸入密碼了牧嫉,相反HTTPS每次提交代碼到GitHub都要輸入郵箱和密碼來驗證,所以HTTPS用起來簡單减途,但麻煩一點酣藻,SSH就是剛開始要配置麻煩而已;接下來我們就開始配置SSH key吧鳍置!
2.配置SSH key
(1)打開Git Bash輸入ssh即可查看電腦是否安裝了SSH辽剧,沒有的話就自行下載安裝,一般情況下安裝了Git都會帶上SSH的:
(2)輸入ssh-keygen –t rsa指定rsa算法生成秘鑰税产,接著連續(xù)3個回車,然后就會生成兩個文件 id_rsa 和 id_rsa.pub 怕轿,而 id_rsa 是密鑰,id_rsa.pub 就是公鑰辟拷。這兩文件默認在如下目錄里生成:win系統(tǒng)在 C:\Users\Administrator.ssh下撞羽,都是隱藏文件,相信你們可以查看的衫冻。
這樣我們就可以將id_rsa.pub配置到GitHub上了诀紊,然后在提交代碼的時候就會和本地的id_rsa進行校驗,校驗成功才可以提交代碼到GitHub倉庫隅俘。
(3)GitHub上配置SSH key也就是id_rsa.pub邻奠,首先進入GitHub上的settings頁面,點擊左側(cè)SSH and GPG keys 为居,如下圖:
然后點擊右上角New SSH key 按鈕碌宴,接著粘貼剛才那個id_rsa.pub文件里面的內(nèi)容:
然后Title 那欄不需要填寫,點擊 Add SSH key 按鈕就可以了颜骤,最后就測試下SSH key配置成功沒哈唧喉,
輸入ssh -T git@github.com如果出現(xiàn)如下提示,則配置成功忍抽!
3.接下來終于可以提交代碼到遠程倉庫了
(1)先再補充一下git命令八孝,pull和push
Pull:
git pull origin master
將遠程最新代碼更新到本地。我們在push之前都會先pull鸠项,這樣就不容易沖突干跛。
push:
git push origin master
將本地代碼推到遠程master 分支
(2)好了,提交代碼到GitHub有兩種方法:第一種方法: Clone自己的項目祟绊,在自己GitHub上創(chuàng)建一個項目楼入,然后在電腦本地(你喜歡的路徑)執(zhí)行如下git命令:git clone git@github.com:zsml2016/News.git 其中git@github.com:zsml2016/News.git是項目的地址哥捕,獲取方法如下圖:
執(zhí)行命令行,結(jié)果如下:這樣就順利地把GitHub上的News項目克隆到電腦本地了嘉熊,這時細心點可以發(fā)現(xiàn)該項目本身就是git倉庫了遥赚,不需要再執(zhí)行g(shù)it init初始化了,而且已經(jīng)關(guān)聯(lián)了GitHub遠程庫了阐肤;
沒錯凫佛,到這里我們只需修改我們想修改的地方,然后git commit孕惜,最后就git push origin master
然后打開GitHub項目可以看到剛才修改的內(nèi)容已經(jīng)提交上來了
第二種方法:就是關(guān)聯(lián)本地項目愧薛,就是GitHub沒有此項目,我們只能關(guān)聯(lián)本地的項目衫画,然后再提交到GitHub遠程倉庫毫炉; 比如現(xiàn)在我們本地有個news2項目,現(xiàn)在需要在GitHub上創(chuàng)建一個news1(這里為了區(qū)別遠程和本地項目名字削罩,所以命名并沒有限制瞄勾,自己喜歡,哈哈)鲸郊,然后再把本地news2項目的所有內(nèi)容提交到GitHub上的news1項目里丰榴;
第一步:在GitHub上創(chuàng)建news1項目;
第二步:切換到本地news2目錄下秆撮,執(zhí)行如下代碼將本地news2項目和GitHub上的news1項目進行關(guān)聯(lián):
友情提示:由于news2還不是一個git倉庫四濒,所以在執(zhí)行g(shù)it操作都要先初始化。
先解釋下上面操作什么意思吧职辨,remote譯為遠程的意思盗蟆,origin是給這個遠程倉庫起的名字,沒錯舒裤,名字可以隨便起的喳资,不過我們都習(xí)慣如果只有一個遠程倉庫時名字就是origin,所以git remote add origin就是添加一個遠程倉庫腾供,git@github.com:zsml2016/News1.git是遠程倉庫的地址仆邓;
那為什么要給遠程庫起名呢?因為我們可能會友多個遠程倉庫伴鳖,這樣就要起不同的名字节值;
我們可以使用git remote –v 來查看當(dāng)前項目有哪些遠程庫:
接下來我們本地的news2項目就可以提交到遠程倉庫news1了:
這時我們進入GitHub上的new1項目,可以發(fā)現(xiàn)news2項目已經(jīng)提交上來了:
git提交項目到GitHub的學(xué)習(xí)也差不多了榜聂,接下來可以再進階地去學(xué)習(xí)搞疗,正所謂學(xué)無止境,come on 须肆!
支持我的話可以關(guān)注下我的公眾號匿乃,也歡迎大家投稿~
掃一掃關(guān)注我的微信公眾號:程序猿在廣東