Git 从了解到放弃
1. 簡單介紹
1.1. git起源
在1991年linus創(chuàng)建了Linux從此linux成為服務(wù)器領(lǐng)域的佼佼者,大部分web服務(wù)器、郵件、數(shù)據(jù)庫各種服務(wù)器端程序都安裝在了linux上面運行,主要是因為它運行的快速、高效、利用率高,這樣一個優(yōu)秀的系統(tǒng)并不是一個人在維護,來自民間的眾多高手一起在維護這linux發(fā)展,那么這么多分布式世界各地的人如何共同維護如此多的Linux代碼呢?這就需要一個分布式代碼管理工具,linus使用過BitKeeper來管理代碼但是它是收費的,讓很多人用著不爽,后來linus本人就自己開發(fā)寫了一個工具來管理,這就是git的第一個版本。后來隨著時間推移越來越多的開源軟件通過Git來管理,為了把世界各地的開源項目管理起來,GitHub網(wǎng)站隨后上線了,很多流行的項目加入的此網(wǎng)站上面。例如我們經(jīng)常使用的jquery等。1.2. 集中式vs分布式
分布式版本系統(tǒng)的最大好處之一是在本地工作完全不需要考慮遠程庫的存在,也就是有沒有聯(lián)網(wǎng)都可以正常工作,而SVN在沒有聯(lián)網(wǎng)的時候是拒絕干活的!當(dāng)有網(wǎng)絡(luò)的時候,再把本地提交推送一下就完成了同步,真是太方便了!集中式版本控制系統(tǒng)像CVS、SVN等,一般是將代碼部署到一臺服務(wù)器上面,每個開發(fā)者在每天開發(fā)之前需要從服務(wù)器上面checkout下來最新的代碼,本地修改完后要 commit,要求本地電腦與服務(wù)器連著才可以提交如果網(wǎng)絡(luò)帶寬慢則會很卡,記得曾經(jīng)在公司提交代碼,幾十k的代碼每次提交都會卡住,很影響開發(fā)速度和開發(fā)質(zhì)量。相比之下,git本地就有倉庫,每個開發(fā)者都有完整的代碼,可以在上面進行各種開發(fā),沒有網(wǎng)絡(luò)的延遲。提高開發(fā)效率。每個人修改代碼之后會將修改的代碼互相推送給每個人,通常為了提高互相推送的傳輸效率往往搭建一臺git服務(wù)器來進行代碼的推送和拉回,可以提高開發(fā)效率。1.3. 各種git的介紹
1.4. git的安裝
一般大神都是用git的命令行工具,同時也有很多的圖形化工具:souretree等
windows 下的安裝
從官網(wǎng)上 :https://git-scm.com/ 上下載,傻瓜式安裝就好了
linux 下安裝
yum install git
2. 本地git的使用
2.1. 初始化本地倉庫
# 使用gitbash創(chuàng)建一個目錄,并進入到該目錄種 mkdir learngit cd learngit # 初始化倉庫 git init # 在該文件下多了一個.git的隱藏目錄 $ ll -a total 24 drwxr-xr-x 1 LH 197121 0 6月 28 14:22 ./ drwxr-xr-x 1 LH 197121 0 6月 28 14:20 ../ drwxr-xr-x 1 LH 197121 0 6月 28 14:22 .git/2.2. 配置識別賬戶與密碼
這個賬戶密碼并不是登入的賬號密碼,只是作為一個識別碼,區(qū)分誰提交的。
每次commit的時候,都會帶上這個信息
2.3. git的操作
使用下面的命令就可以完成一次版本的提交。
git add filename # add dir 添加該文件下所有文件; add file1 file2 ; add . 添加所有所有的文件。 git commit -m '注釋消息' # -m是注釋的意思。注意的是 每次版本提交都要詳細標(biāo)明每次變化2.4. 三區(qū):工作區(qū)、緩存區(qū)、版本區(qū)
2.5. 查看提交的版本信息
git log git log --pretty=oneline # 一行顯示,還有其他參數(shù)自己研究2.6. 版本回退-git reset
回退到上一個版本 git reset --hard HEAD^ 回退到上上個版本 git reset --hard HEAD^^ 回到到上100個版本 git reset --hard HEAD~100 回退到指定的版本 git reset --hard 具體的版本號(使用git log查看)但是我們回到上一個版本之后,使用git log 看不到之后的版本了,這個很蛋疼:
2.7. 撤銷-git checkout
git checkout -- filename
分為兩種情況:
總之,就是讓文件回到最后一次git add 或 git commit的狀態(tài)
3. 遠端倉庫
3.1. github設(shè)置
license是一個公開授權(quán),沒啥用
3.2. 兩種連接方式
需要賬號密碼認證- 適合單人的項目
git remote add origin https://github.com/star-hui/gittest.git # origin是倉庫的名字,可以隨意定義但是下面必須一直 git push -u origin master # 第一次推送的時候,需要把本地的mster分支與遠程的master分支合并。所以加上-u參數(shù) git push origin msster # 之后每次連接不需要-u參數(shù)直接使用公鑰,團隊成員每個成員的公鑰都加入進來,就可以一起使用了。
# 第一步:在你本地先生成rsa的密鑰 ssh-keygen.exe -t rsa -C '123@qq.com' # 郵箱是團隊每個成員自己的郵箱,只作為標(biāo)識符# 第二步: 在上一步生成的rsa文件夾種,把.pub結(jié)尾的文件加入到github網(wǎng)站的ssh-key中# 第三步: 本地進行關(guān)聯(lián)操作git remote add louhui git@github.com:star-hui/sshtest.git# louhui只是倉庫名,:后面的為項目地址,前面郵箱都使用Git官方郵箱。# 第四部: 推送 # 第一次推送,需要合并本地與遠端的master分支 git push -u louhui master # 以后推送 git push -u louhui master在上面其實我們看出,本地的git可以添加多個遠程倉庫,使用倉庫名來區(qū)分就可以了。如下:
git remote add louhui | origin git push louhui | origin master # 使用不同的倉庫名,進行推送3.3. 克隆云端的項目
本地不需要新初始化一個倉庫,克隆下來就是一個倉庫了:
有兩種辦法,有些網(wǎng)絡(luò)場景被屏蔽的一些端口的時候,可以從這兩種來選擇。
第一種直接使用遠端的倉庫https地址:進入到倉庫,直接復(fù)制下來
git clone https://github.com/star-hui/gittest
第二種使用ssh來連接克隆
git clone git@github.com:star-hui/sshtest.git
3.4. 分支管理
待完善轉(zhuǎn)載于:https://www.cnblogs.com/louhui/p/9241460.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的Git 从了解到放弃的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Gin 文档学习
- 下一篇: 一加Open渲染图曝光:短胖小尺寸机身+