成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Git基礎(chǔ)知識(shí)教程整理(Git基本操作)

187J3X1 / 2619人閱讀

摘要:簡介是目前世界上最先進(jìn)的分布式版本控制系統(tǒng)沒有之一。查看所有分支的版本操作記錄。工作區(qū)直接刪除文件,提交到版本庫。與他人協(xié)作涉及管理遠(yuǎn)程倉庫以及根據(jù)需要推送或拉取數(shù)據(jù)??寺∵h(yuǎn)程倉庫支持多種協(xié)議,默認(rèn)使用,也可以使用等其他協(xié)議。

Git簡介

Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng)(沒有之一)。
Linux之父Linux用C語言寫了Git分布式版本控制系統(tǒng)。

分布式版本控制系統(tǒng)與集中式版本控制系統(tǒng)的區(qū)別
區(qū)別 分布式 集中式
中央服務(wù)器 有,版本庫集中存放在中央服務(wù)器,工作時(shí)需從中央服務(wù)器獲取最新版本代碼,工作完成后在將代碼推送到中央服務(wù)器。中央服務(wù)器出了問題,開發(fā)者幾乎無法工作 無,開發(fā)人員本地都有本地存儲(chǔ)庫(Local Repository)
聯(lián)網(wǎng) 必須,必須要聯(lián)網(wǎng)才能工作,而且對網(wǎng)絡(luò)的依賴性較強(qiáng),網(wǎng)絡(luò)較差或者文件較大,文件提交的速度會(huì)受很大的限制 不是必要的,在沒有網(wǎng)絡(luò)的情況下也可以執(zhí)行commit、查看版本提交記錄、以及分支操作,在有網(wǎng)絡(luò)的情況下執(zhí)行 push 將代碼從本地倉庫推送到遠(yuǎn)程倉庫(Remote Repository)。
存儲(chǔ)格式 原始文件,體積大 元數(shù)據(jù),體積小
分支操作 創(chuàng)建新的分支則所有的人都會(huì)擁有和你一樣的分支 分支操作不會(huì)影響其他開發(fā)人員
提交方式 直接提交到中央版本庫 先commit到本地倉庫,再push到遠(yuǎn)程倉庫
優(yōu)點(diǎn) 方便管理,邏輯明確,上手快;更能保證代碼的安全性;代碼一致性非常高;有良好的目錄級權(quán)限控制系統(tǒng) 速度快、靈活,分支之間可以任意切換;單機(jī)合并分支,開發(fā)者之間容易解決沖突;可離線工作,不影響本地代碼編寫;公共服務(wù)器壓力小,數(shù)據(jù)傳輸量少
缺點(diǎn) 服務(wù)器性能要求高,數(shù)據(jù)體量大;必須聯(lián)網(wǎng);不適合開源;分支管理不靈活 不符合常規(guī)思維,學(xué)習(xí)周期相對較長;代碼保密性差,一旦開發(fā)者把整個(gè)庫克隆下來就可以完全公開所有代碼和版本信息。
創(chuàng)建版本庫

創(chuàng)建一個(gè)項(xiàng)目目錄(mkdir Git)

進(jìn)入到這個(gè)目錄(cd Git)

初始化版本庫(git init)

在當(dāng)前目錄下會(huì)有.git的目錄,它是git進(jìn)行跟蹤和管理版本庫,禁止刪改此文件(如果沒看到可能是您的電腦不顯示隱藏文件,在命令行工具運(yùn)行 ls -ah可查看)。

$ mkdir Git
$ cd Git
$ git init
// Initialized empty Git repository in /Users/zhengdahua/Documents/Project/Private/Git/.git/ 初始化空的版本庫

編寫一個(gè)README.md文件

將README.md添加到暫存區(qū)(git add README.md)

確認(rèn)提交文件到倉庫(git commit -m "add example file")

我們當(dāng)前的項(xiàng)目目錄是工作區(qū),git初始化之后會(huì)生成一個(gè).git文件,即我們所說的版本庫(respository),.git中有一個(gè)index文件就是暫存區(qū)(stage),git還為我們自動(dòng)生成了一個(gè)分支master以及指向該分支的指針head。想了解更多,請移步git工作區(qū)、暫存區(qū)、版本庫之間的關(guān)系。

$ type nul>README.md
$ git add README.md
$ git commit -m "add example file"
版本回退

查看版本庫的狀態(tài)(git status)。下面的命令輸出告訴我們,document.md被修改過了,但還沒有提交。

?  Git git:(master) git status 
On branch master
Changes not staged for commit:
  (use "git add ..." to update what will be committed)
  (use "git checkout -- ..." to discard changes in working directory)

        modified:   docs/document.md

no changes added to commit (use "git add" and/or "git commit -a")
?  Git git:(master) ? 

比較兩次修改的差異(git diff)?!?”后面跟的是刪除的內(nèi)容,“+”后面跟的是新增的內(nèi)容

-### 4. 編寫一個(gè)README.md文件
-### 5. 將README.md添加到暫存區(qū)(git add README.md)
-### 6. 確認(rèn)提交文件到倉庫(git commit -m "add example file")
++ 4. 編寫一個(gè)README.md文件
++ 5. 將README.md添加到暫存區(qū)(git add README.md)

查看提交日志(git log)。顯示從最近到最遠(yuǎn)的提交日志

commit 241f77158c2d59b0b10e482b74a24150a0bebeb4 (HEAD -> master)
Author: kevin 
Date:   Sun Feb 24 22:24:51 2019 +0800

    update document.md

commit f953ccc298a430939e5e64eeedd49cc2db5a3fdb
Author: kevin 
Date:   Sun Feb 24 21:43:08 2019 +0800

回退版本(git reset --hard HEAD^)。用HEAD表示當(dāng)前版本,則HEAD^就是上個(gè)版本,HEAD^表示上上個(gè)版本,HEAD~100表示上一百個(gè)版本,“241f77158c2d59b0b10e482b74a24150a0bebeb4”指的是版本的id,我們要回退到指定版本是只需要id的前幾位就行,但最好5位以上?;赝酥付ò姹荆╣it reset --hard f953c)。

查看所有分支的版本操作記錄(git reflog)。當(dāng)你用$ git reset --hard HEAD^回退到以前版本時(shí),再想恢復(fù)到append GPL,就必須找到append GPL的commit id,通過git reflog就可以append GPL的commit id了。

241f771 (HEAD -> master) HEAD@{0}: reset: moving to 241f771
f953ccc HEAD@{1}: reset: moving to HEAD^
241f771 (HEAD -> master) HEAD@{2}: commit: update document.md
f953ccc HEAD@{3}: commit (amend): add first file
bd07a32 HEAD@{4}: commit (amend): add first file
98f7467 HEAD@{5}: commit (initial): add first file
修改管理

Git 并不跟蹤與文件相關(guān)的文件名和目錄名,而是跟蹤的是文件的內(nèi)容,查看Git 追蹤內(nèi)容詳解。因此文件的每一次修改,都需要git add添加到暫存區(qū),然后在commit到版本庫。

修改撤銷(git checkout -- README.md)。這里有兩種情況:一種是README.md自修改后還沒有被放到暫存區(qū),現(xiàn)在,撤銷修改就回到和版本庫一模一樣的狀態(tài);一種是readme.txt已經(jīng)添加到暫存區(qū)后,又作了修改,現(xiàn)在,撤銷修改就回到添加到暫存區(qū)后的狀態(tài)??傊褪亲屵@個(gè)文件回到最近一次git commit或git add時(shí)的狀態(tài)。

刪除文件。工作區(qū)直接刪除文件,提交到版本庫。

遠(yuǎn)程倉庫

為了能在任意 Git 項(xiàng)目上協(xié)作,你需要知道如何管理自己的遠(yuǎn)程倉庫。 遠(yuǎn)程倉庫是指托管在因特網(wǎng)或其他網(wǎng)絡(luò)中的你的項(xiàng)目的版本庫,例如github、gitlab、碼云或者你自己用服務(wù)器搭建的遠(yuǎn)程倉庫。 你可以有好幾個(gè)遠(yuǎn)程倉庫,通常有些倉庫對你只讀,有些則可以讀寫。 與他人協(xié)作涉及管理遠(yuǎn)程倉庫以及根據(jù)需要推送或拉取數(shù)據(jù)。 管理遠(yuǎn)程倉庫包括了解如何添加遠(yuǎn)程倉庫、移除無效的遠(yuǎn)程倉庫、管理不同的遠(yuǎn)程分支并定義它們是否被跟蹤等等。

創(chuàng)建SSH Key 。

在用戶目錄下查看有沒有.ssh文件目錄(電腦需要顯示隱藏文件),如果有再查看有沒有id_rsa(私匙)和id_rsa.pub(公匙)。有直接跳過第一步,沒有則創(chuàng)建SSH Key,郵箱換成你自己的郵箱,一路回車即可。

$ ssh-keygen -t rsa -C "[email protected]"
上傳公鑰

登陸GitHub,打開“Account settings”,“SSH Keys”頁面;然后,點(diǎn)“Add SSH Key”,填上任意Title,在Key文本框里粘貼id_rsa.pub文件的內(nèi)容。

注:Github通過公鑰識(shí)別你的身份,確認(rèn)只有你自己才能推送。GitHub允許你添加多個(gè)Key,如果有多臺(tái)電腦,把電腦的公鑰都添加到Github上,這樣不管用哪臺(tái)電腦都可以向Github推送代碼了。

添加遠(yuǎn)程庫。

在github上創(chuàng)建一個(gè)project,在Repository name填入項(xiàng)目名(Git),其他保持默認(rèn)設(shè)置,點(diǎn)擊“Create repository”按鈕,就成功地創(chuàng)建了一個(gè)新的Git倉庫。

目前,在GitHub上的這個(gè)Git倉庫還是空的,GitHub告訴我們,可以從這個(gè)倉庫克隆出新的倉庫,也可以把一個(gè)已有的本地倉庫與之關(guān)聯(lián),然后,把本地倉庫的內(nèi)容推送到GitHub倉庫。

現(xiàn)在,我們根據(jù)GitHub的提示,在本地的Git倉庫下運(yùn)行命令:

$ git remote add origin [email protected]:dahuazheng/Git.git

注:dahuazheng為你github的賬戶名

添加遠(yuǎn)程倉庫后,遠(yuǎn)程庫的名字就是origin,這是Git默認(rèn)的叫法,也可以改成別的,但是origin這個(gè)名字一看就知道是遠(yuǎn)程庫,接下來把本地庫的所有內(nèi)容推送到遠(yuǎn)程庫上:

$ git push -u origin master

把本地庫的內(nèi)容推送到遠(yuǎn)程,用git push命令,實(shí)際上是把當(dāng)前分支master推送到遠(yuǎn)程。

由于遠(yuǎn)程庫是空的,我們第一次推送master分支時(shí),加上了-u參數(shù),Git不但會(huì)把本地的master分支內(nèi)容推送的遠(yuǎn)程新的master分支,還會(huì)把本地的master分支和遠(yuǎn)程的master分支關(guān)聯(lián)起來,在以后的推送或者拉取時(shí)就可以簡化命令。

克隆遠(yuǎn)程倉庫(git clone)

Git支持多種協(xié)議,默認(rèn)使用ssh,也可以使用https等其他協(xié)議。通過ssh支持的原生git協(xié)議速度最快。使用https除了速度慢以外,還有個(gè)最大的麻煩是每次推送都必須輸入口令,但是在某些只開放http端口的公司內(nèi)部就無法使用ssh協(xié)議而只能用https。

使用ssh示例

$ git clone [email protected]:dahuazheng/vue-note.git

使用https示例

$ git clone https://github.com/dahuazheng...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/102306.html

相關(guān)文章

  • Git基礎(chǔ)知識(shí)教程整理Git分支管理)

    摘要:分支的創(chuàng)建合并與刪除創(chuàng)建分支與切換分支或者命令加上參數(shù)表示創(chuàng)建并切換。或者后面不跟分支名時(shí)指列出所有分支,當(dāng)前分支前面加。刪除分支刪除本地分支,不能在當(dāng)前分支執(zhí)行刪除當(dāng)前分支的操作。 分支的創(chuàng)建、合并與刪除 創(chuàng)建分支與切換分支 $ git branch develop$ git checkout develop 或者 $ git checkout -b develop git che...

    xingpingz 評論0 收藏0
  • 別耍流氓,什么樣的教程才算是合格的教程

    摘要:綜上,一個(gè)好的教程應(yīng)該是通俗易懂,由淺入深,全面詳盡的展示知識(shí)內(nèi)容,展現(xiàn)出全面的知識(shí)輪廓知識(shí)體系,以及學(xué)習(xí)該教程所需要的知識(shí)水平,并且給出建議,和學(xué)習(xí)其它知識(shí)的渠道。這才是對讀者,對知識(shí)負(fù)責(zé)任的態(tài)度。 現(xiàn)在網(wǎng)絡(luò)發(fā)達(dá),網(wǎng)上資料多,查閱方便,所以網(wǎng)上學(xué)習(xí)的確是一種很好的途徑,但是網(wǎng)上的資料很多都呈碎片化的,并且質(zhì)量良莠不齊,有的還有時(shí)效性,錯(cuò)誤性等問題。很多原因往往給學(xué)習(xí)者帶來很大的困擾,...

    Blackjun 評論0 收藏0
  • AI開發(fā)書籍分享

    摘要:編程書籍的整理和收集最近一直在學(xué)習(xí)深度學(xué)習(xí)和機(jī)器學(xué)習(xí)的東西,發(fā)現(xiàn)深入地去學(xué)習(xí)就需要不斷的去提高自己算法和高數(shù)的能力然后也找了很多的書和文章,隨著不斷的學(xué)習(xí),也整理了下自己的學(xué)習(xí)筆記準(zhǔn)備分享出來給大家后續(xù)的文章和總結(jié)會(huì)繼續(xù)分享,先分享一部分的 編程書籍的整理和收集 最近一直在學(xué)習(xí)deep learning深度學(xué)習(xí)和機(jī)器學(xué)習(xí)的東西,發(fā)現(xiàn)深入地去學(xué)習(xí)就需要不斷的去提高自己算法和高數(shù)的能力然后...

    huayeluoliuhen 評論0 收藏0

發(fā)表評論

0條評論

187J3X1

|高級講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<