談起開源疚脐,相信很多人就會(huì)想到Linux系統(tǒng)。Linux也在全世界熱心的志愿者的參與下,不斷壯大為全世界最大的系統(tǒng)軟件趟妥,但是Linux卻存在不同的版本分支,不同的Linux代碼的管理是一個(gè)很讓人頭疼的問題佣蓉。
一些機(jī)緣巧合之下披摄,Linux的創(chuàng)建者Linus用C寫了兩周時(shí)間的時(shí)間,完成了一個(gè)分布式版本控制系統(tǒng)勇凭,就是Git疚膊。在它出現(xiàn)的一個(gè)月后,Linux的源代碼就已經(jīng)由Git管理了虾标。至今寓盗,世界許多的開源項(xiàng)目都由其托管,Git也迅速成為世界上最為流行的分布式版本控制系統(tǒng)璧函。
簡(jiǎn)單地理解一下傀蚌,Git就是一個(gè)代碼管理倉(cāng)庫(kù),它可以幫你的項(xiàng)目管理你的項(xiàng)目伊始到后期維護(hù)的代碼蘸吓。同時(shí)善炫,全部的代碼還可以克隆給團(tuán)隊(duì)的任何一個(gè)人,其他人所做的任何修改库继,你也能夠知道箩艺。當(dāng)然,因?yàn)槭欠植际焦芾硐芴眩?dāng)你的電腦上壞掉了舅桩,其他人是有完整的版本庫(kù)的,直接重新復(fù)制一份即可雨膨,這相較于集中式版本控制自然安全很多擂涛。
Git安裝
Git的發(fā)明本身是為了Linux源代碼管理的,但是隨著它的發(fā)展聊记,常見的系統(tǒng)平臺(tái)已經(jīng)能夠很好支持了的撒妈。
這里簡(jiǎn)單介紹一下Git在Linux、Mac和Windows下的安裝排监。
-
在不同的發(fā)型版本的Linux下狰右,打開系統(tǒng)下的Terminal終端環(huán)境,輸入命令即可舆床。下面是不同Linux版本系統(tǒng)下的安裝命令:
Debian/Ubuntu:
$ apt-get install git
Fedora:
$ yum install git (up to Fedora 21)
$ dnf install git (Fedora 22 and later)
Gentoo:
$ emerge --ask --verbose dev-vcs/git
Arch Linux:
$ pacman -S git
openSUSE:
$ zypper install git
Mageia:
$ urpmi git
FreeBSD:
$ pkg install git
Solaris 9/10/11 (OpenCSW):
$ pkgutil -i git
Solaris 11 Express:
$ pkg install developer/versioning/git
OpenBSD:
$ pkg_add git
Alpine:
$ apk add git
-
在Mac下棋蚌,打開這個(gè)網(wǎng)址 https://git-scm.com/download/mac 嫁佳,將Git的dmg安裝包下載下來,安裝即可谷暮。
(圖片來源網(wǎng)上) 在Windows下蒿往,從這個(gè)網(wǎng)址 https://git-for-windows.github.io/ ,將Git的安裝包下載下來湿弦,按照默認(rèn)選項(xiàng)一直NEXT下去瓤漏,安裝完成即可。
安裝完成之后颊埃,以Windows為例蔬充,在開始菜單找到"Git" > "Git Bash",或者打開命令提示符班利,輸入git饥漫,回車后出現(xiàn)命令選項(xiàng)即安裝成功。
安裝完成之后罗标,這里需要進(jìn)一步設(shè)置你的Git趾浅,在Git Bash命令行下,輸入以下命令:
? $ git config --global user.name "Your Name"
? $ git config --global user.email "email@example.com"
這里需要注意的是馒稍,需要你在 https://github.com/ 下先注冊(cè)屬于你的帳號(hào)皿哨。
創(chuàng)建版本庫(kù)
以 F:\MyGit\PY_ML 文件夾為例,在 F:\MyGit\ 路徑下新建文件夾 PY_ML纽谒,做為版本庫(kù)证膨。打開該新建目錄,右鍵菜單鼓黔,出現(xiàn)箭頭所指選項(xiàng)央勒,點(diǎn)擊后出現(xiàn)Git Bash命令行窗口,輸入命令 git init
澳化,即初始化該版本庫(kù)崔步。
此時(shí)該目錄下即出現(xiàn)一個(gè)隱藏的名字為".git"的文件夾
添加文件
在添加文件之前,強(qiáng)調(diào)一點(diǎn)缎谷,Git無法對(duì)二進(jìn)制文件進(jìn)行版本跟蹤井濒,這里需要以純文本方式編寫文件。所以建議以'UTF-8'的編碼格式編寫文件列林。
這里推薦使用Notepad++軟件進(jìn)行文件的編寫瑞你。打開安裝好的Notepad++軟件,新建文件后希痴,輸入你對(duì)自己這個(gè)版本庫(kù)的介紹或者任意內(nèi)容者甲,以readme.txt的文件名保存在版本庫(kù)目錄下。
這時(shí)在命令行下輸入
git status
砌创,回車后出現(xiàn)此時(shí)Git已經(jīng)識(shí)別到了該版本庫(kù)下出現(xiàn)了新的文件虏缸,但是此時(shí)版本庫(kù)還未添加該文件鲫懒。
輸入git add readme.txt
命令,即可添加該文件刽辙。
但是窥岩,文件是已經(jīng)添加了,但是還需要一步扫倡,即提交到倉(cāng)庫(kù)中去,否則文件如果更改了竟纳,Git不會(huì)有記錄的撵溃,這時(shí)候輸入一下命令
git commit -m "這里輸入你的提交說明"
,即可完成提交锥累。
版本控制
我們已經(jīng)成功提交了readme.txt缘挑,后來,我們對(duì)這個(gè)文件進(jìn)行了修改桶略,這時(shí)候如果輸入git status
命令语淘,會(huì)出現(xiàn)一下情況:
Git發(fā)現(xiàn)了文件的變動(dòng),那么文件發(fā)生了那些變動(dòng)呢际歼?
輸入git diff
后惶翻,出現(xiàn)了變動(dòng)的情況:
Bash告訴了我們,在readme.txt文件中鹅心,在“JasonJe的Python機(jī)器學(xué)習(xí)代碼倉(cāng)庫(kù)”行下吕粗,添加了兩行,一行為空行旭愧,另一行內(nèi)容為“123”的修改颅筋。此時(shí)我們?nèi)绻枰略撐募匦螺斎朊?code>git add readme.txt和
git commit -m "修改說明"
即可输枯。
在上述的操作中议泵,我們從創(chuàng)建readme.txt到修改它,共進(jìn)行了兩次版本更新桃熄,通過git log
命令先口,可以看到你的操作情況:
這時(shí)候,我們希望將文件恢復(fù)到上一版本的時(shí)候瞳收,需要輸入命令
git reset --hard HEAD^
即可池充。這時(shí)候我們查看一下文件,輸入cat readme.txt
命令進(jìn)行查看缎讼∈湛洌可以看到,文件已經(jīng)恢復(fù)到前一版本的時(shí)候血崭。
如果我們希望回復(fù)到任意版本的時(shí)候卧惜,就需要使用上述的
git log
命令厘灼,尋找需要回復(fù)的版本號(hào)(commit id),我們輸入以下命令git reset --hard 915b342a58198d8e018dab08709df4bff187cc19
咽瓷,即可恢復(fù)到id為915b342a58198d8e018dab08709df4bff187cc19的版本设凹。
這里我們將readme.txt文件修改到最初的時(shí)候,輸入命令
git status
茅姜,會(huì)出現(xiàn)我們修改過該文件的提示闪朱,此時(shí)我們需要撤銷該修改,使用git checkout -- readme.txt
即可钻洒。
我們?cè)诎姹編?kù)中再添加和提交一個(gè)"removeme.txt"文件奋姿,如果直接刪除該文件
rm remove.txt
,此時(shí)Git會(huì)提示你該文件被刪除了素标。這時(shí)候称诗,你需要使用git checkout -- removeme.txt
來撤銷刪除;或者你需要使用git rm removeme.txt
和git commit -m "刪除說明"
來真正刪除該文件头遭。提交遠(yuǎn)程庫(kù)
一開始你已經(jīng)注冊(cè)了自己的GitHub帳號(hào)寓免,這時(shí)候你可能需要將代碼文件上傳到自己的GitHub倉(cāng)庫(kù)中,以便不同地點(diǎn)進(jìn)行你的文件同步管理计维。
在這開始袜香,你需要進(jìn)行一些設(shè)置,在Git Bash下鲫惶,輸入命令ssh-keygen -t rsa -C "youremail@example.com"
,如果不需要處于安全過多的考慮困鸥,一直回車即可。
這時(shí)候剑按,在你的用戶目錄下C:\Users\Username\.ssh就產(chǎn)生了id_rsa和id_rsa.pub這兩個(gè)文件疾就,其中id_rsa是私鑰,不能泄露出去艺蝴,id_rsa.pub是公鑰猬腰,可以放心地告訴任何人。
這時(shí)候利用記事本文件打開id_rsa.pub文件猜敢,復(fù)制里面的內(nèi)容姑荷,進(jìn)入你的GitHub,設(shè)置你的SSH keys
"Title"的內(nèi)容隨意設(shè)置即可缩擂,在"Key"下粘貼剛剛復(fù)制的內(nèi)容后鼠冕,點(diǎn)擊"Add SSH key"即可。
此時(shí)需要在你的GitHub下添加你的倉(cāng)庫(kù)胯盯。在你的GitHub界面下懈费,在右上角點(diǎn)擊"+"號(hào),選擇"New repository"新建一個(gè)倉(cāng)庫(kù)博脑,在新建倉(cāng)庫(kù)頁(yè)面下進(jìn)行如下設(shè)置憎乙。
需要注意的是票罐,倉(cāng)庫(kù)的名字需要設(shè)置為你本地倉(cāng)庫(kù)的名字。
這時(shí)候回到Bash界面泞边,輸入一下命令即可git remote add origin git@github.com:yourname/repositoryname.git
和git push -u origin master
即可该押。
待到上傳完成,重新回到你的GitHub阵谚,刷新即可看到你的倉(cāng)庫(kù)已經(jīng)提交成功蚕礼。