日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Git使用教程与基本原理和Sourcetree基本使用探微

發(fā)布時(shí)間:2025/3/21 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Git使用教程与基本原理和Sourcetree基本使用探微 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • 什么是GIT
  • Git是一個(gè)強(qiáng)調(diào)速度的分布式版本控制軟件和源代碼管理系統(tǒng)(SCM,source code management)。Git最初是由Linus Torvalds為內(nèi)核開(kāi)發(fā)而設(shè)計(jì)的管理軟件。自從Git推出以來(lái),已經(jīng)被很多開(kāi)源項(xiàng)目所采納。每一個(gè)Git工作目錄是一個(gè)帶有完全歷史記錄和版本信息的倉(cāng)庫(kù),不依賴(lài)于網(wǎng)絡(luò)和中央服務(wù)器。Git是一個(gè)免費(fèi)的開(kāi)源軟件,遵從GNU v2協(xié)議。

    Git這個(gè)詞在英語(yǔ)中的原意是很笨拙,沒(méi)用的人。Linus自嘲說(shuō):“我是一個(gè)任性的笨蛋,所以我把我的所有的項(xiàng)目的名字都和我很相似。第一個(gè)是Linux,現(xiàn)在是Git?!盙it的幫助文檔中描述Git為:笨拙的內(nèi)容跟蹤者(the stupid content tracker)。(翻譯自WIKI)

    關(guān)于開(kāi)發(fā)Git的一些歷史由來(lái),可以看看這個(gè)網(wǎng)站:https://lkml.org/lkml/2005/4/6/121

    ? ?2.為什么要用GIT

    • 更順暢的工作流程,開(kāi)發(fā)過(guò)程中,完全可以離線(xiàn)操作
    • 快速,Git分布式架構(gòu)使得本地倉(cāng)庫(kù)包含所有的歷史版本信息,你可以在不同的版本之間快速切換
    • 彈性的本地分支,在svn下,你建一個(gè)分支需要把源代碼復(fù)制到另外一個(gè)文件夾,而在Git下,創(chuàng)建分支的代價(jià)是非常小的,只需一條命令
    • 倉(cāng)庫(kù)目錄結(jié)構(gòu)簡(jiǎn)潔,用Git復(fù)制一個(gè)項(xiàng)目,只會(huì)在項(xiàng)目根目錄創(chuàng)建一個(gè).git的目錄,而其他目錄很干凈
    • 內(nèi)容按元數(shù)據(jù)方式存儲(chǔ),所有的版本信息都位于.git目錄下
    • 完整性好,更易于協(xié)作開(kāi)發(fā)
    • 用戶(hù)群大,現(xiàn)在已經(jīng)有成千上萬(wàn)個(gè)開(kāi)源項(xiàng)目采用Git來(lái)做項(xiàng)目管理,github上更是有無(wú)數(shù)個(gè)代碼倉(cāng)庫(kù)
    ? 3、GIT安裝與配置 ?

    • 在 Mac 上安裝

      在 Mac 上安裝 Git 有多種方式。 最簡(jiǎn)單的方法是安裝 Xcode Command Line Tools。?Mavericks (10.9) 或更高版本的系統(tǒng)中,在 Terminal 里嘗試首次運(yùn)行?git?命令即可。 如果沒(méi)有安裝過(guò)命令行開(kāi)發(fā)者工具,將會(huì)提示你安裝。

      如果你想安裝更新的版本,可以使用二進(jìn)制安裝程序。 官方維護(hù)的 OSX Git 安裝程序可以在 Git 官方網(wǎng)站下載,網(wǎng)址為?http://git-scm.com/download/mac。


    • .在Linux上安裝
    如果你的系統(tǒng)是Linux或者Fedora,你可以通過(guò)以下命令直接安裝Git:

    yum install git-core (fedora)

    apt-get install git-core (ubuntu)

    • .在Windows上安裝

    盡管Git是發(fā)源于Linux,但現(xiàn)在Windows上也有能夠正常使用Git,只不過(guò)不支持中文,在Windows下所有的中文都顯示問(wèn)號(hào),另外還有一些功能上的BUG。所以建議還是在Linux上去使用Git,如果你不得不工作在Windows上,你可以到http://msysgit.github.com/上下載msysgit的最新版,安裝過(guò)程和其他Windows程序差不多,基本上點(diǎn)下一步就OK了。Msysgit默認(rèn)會(huì)安裝git bash和git GUI這兩個(gè)程序,一般用git bash就可以了,它支持常用的命令。如果對(duì)Linux命令行不熟,你也可以用用git GUI,但功能有限制。

    b) 第一次使用GIT

    在你安裝好Git之后,你需要修改一些配置,才能正常使用Git。

    Git通過(guò)“git config”命令來(lái)配置Git,這個(gè)命令有2個(gè)選項(xiàng):--system, --global, 加上默認(rèn)選項(xiàng),分別對(duì)應(yīng)Git上3級(jí)配置文件。第一個(gè)是/etc/gitconfig文件,和--system對(duì)應(yīng),這是全局配置文件,修改這個(gè)文件,將會(huì)影響系統(tǒng)上所有的用戶(hù),所有的倉(cāng)庫(kù)。第二個(gè)是你家目錄下的/.gitconfig文件,與--global對(duì)應(yīng),修改它會(huì)對(duì)你當(dāng)前用戶(hù)的所有倉(cāng)庫(kù)產(chǎn)生影響。第三個(gè)是你倉(cāng)庫(kù)中的.git/.gitconfig文件,這是“git config”默認(rèn)修改的配置文件,它只會(huì)對(duì)你當(dāng)前倉(cāng)庫(kù)產(chǎn)生影響。

    在第一次使用Git時(shí),你需要告訴你的協(xié)同開(kāi)發(fā)者,你是誰(shuí)以及你的郵箱,在你提交的時(shí)候,Git需要這兩個(gè)信息。具體通過(guò)以下命令設(shè)置:

    git config --global user.name “Test OSS”

    git config --global user.email [email protected]

    當(dāng)然你也可以不用--global選項(xiàng),但這意味這你在每一個(gè)倉(cāng)庫(kù)中都要這樣設(shè)置。

    同時(shí),你也可以指定你的編輯器,你的Diff工具:

    git config --global core.editor vim

    git config --global merge.tool vimdiff

    你還可以通過(guò)”git config --list”命令來(lái)查看你的設(shè)置。

    當(dāng)你把Git設(shè)置好之后,如果你要和從Git服務(wù)器上獲得倉(cāng)庫(kù),或者向Git服務(wù)器提交你的代碼(比如github),你可能需要生成你自己的ssh密鑰對(duì)。Git支持4種與服務(wù)器端通信的協(xié)議:git、http、ssh和https。其中g(shù)it只是一個(gè)只讀協(xié)議,也就是說(shuō)你只可以從服務(wù)器端獲取倉(cāng)庫(kù),但是你不能提交你自己的代碼。而http和https用的很少,大部分都只支持ssh協(xié)議和Git協(xié)議。

    當(dāng)你通過(guò)ssh協(xié)議與遠(yuǎn)端服務(wù)器進(jìn)行通信的時(shí)候,你可以通過(guò)以下命令生成ssh密鑰對(duì):

    ssh-keygen -t rsa

    如果你沒(méi)有指定密鑰名稱(chēng)和存放路徑的話(huà),它默認(rèn)把兩個(gè)不對(duì)稱(chēng)密鑰放在你的家目錄下的.ssh目錄下,密鑰文件默認(rèn)名稱(chēng)為id_rsa和id_rsa.pub,前者是私鑰,后者是公鑰。中間可能會(huì)要你設(shè)定訪問(wèn)密鑰密碼,這個(gè)可以設(shè),可以不設(shè),但為了安全考慮,還是建議你設(shè)一個(gè)訪問(wèn)密碼。否則,意味著任何持有你密鑰的人都可以使用該密鑰。

    然后把你的公鑰發(fā)給Git倉(cāng)庫(kù)管理員,然后你就可以通過(guò)ssh協(xié)議來(lái)訪問(wèn)服務(wù)器端,期間程序會(huì)自動(dòng)進(jìn)行密鑰對(duì)匹配,如果你設(shè)了訪問(wèn)密碼,你可能需要輸入密碼。

    更多關(guān)于ssh的內(nèi)容,請(qǐng)?jiān)L問(wèn)這里:http://www.freebsd.org/doc/zh_CN/books/handbook/openssh.html

    這些設(shè)定完之后,你可以通過(guò)獲得任何一個(gè)公開(kāi)的代碼倉(cāng)庫(kù)來(lái)檢測(cè)你的git是否工作正常。比如下面這個(gè):

    git clone git://git2.kernel.org/pub/scm/git/git.git

    4、GIT倉(cāng)庫(kù)

    Git做為一個(gè)資源管理和跟蹤系統(tǒng),如果想要把自己的文件托管在Git上,那么首先你得讓Git知道你需要管理的文件在哪。比如說(shuō)現(xiàn)在我有一個(gè)項(xiàng)目,它在test文件夾里,我想讓Git管理這個(gè)項(xiàng)目,這個(gè)時(shí)候你需進(jìn)入到這個(gè)目錄,然后運(yùn)行“git init”命令。這個(gè)時(shí)候Git就會(huì)在該目錄下生成一個(gè).git的隱藏目錄,Git用來(lái)進(jìn)行版本控制和內(nèi)容跟蹤的所有文件都在該文件夾下。

    處于git跟蹤下的文件只具有三種狀態(tài):

    • Modified(working directory):被修改過(guò)的文件
    • Staged(staging area):通過(guò)git add添加到暫存區(qū)域的文件
    • Committed(git directory):通過(guò)git commit提交到倉(cāng)庫(kù)的文件

    所以,一般的git工作流程可能是這樣:修改過(guò)某些文件,然后把這些文件添加都暫緩區(qū),再提交到倉(cāng)庫(kù)中形成一個(gè)版本或快照,最后提交到git服務(wù)器上。而在中間,可能伴隨著分支管理,分支切換,撤消與合并。

    可能有些人會(huì)覺(jué)得很奇怪,為什么git會(huì)有暫存區(qū)域這個(gè)概念,直接提交到倉(cāng)庫(kù)中不就ok了。其實(shí)這是git為了做版本控制用的,試想如果沒(méi)有暫存區(qū)域,每修改一個(gè)文件,就會(huì)形成一個(gè)版本,太過(guò)頻繁,不易于管理。暫存區(qū)域其實(shí)就是下一個(gè)版本的文件清單,你可以自由控制該往倉(cāng)庫(kù)中提交什么文件,這也可以避免在一個(gè)版本中包含一些中間文件,比如編譯后的文件。




    更多git 進(jìn)階(?http://www.125135.com/1057214.htm )

    命令行比較高冷,還是來(lái)一個(gè)圖形界面

    GUI for git|SourceTree|入門(mén)基礎(chǔ)

  • SourceTree簡(jiǎn)介
  • SourceTree基本使用
  • SourceTree&Git部分名詞解釋
  • 相關(guān)連接推薦
  • 一、SourceTree簡(jiǎn)介

    ??SourceTree 是 Windows 和Mac OS X 下免費(fèi)的 Git 和 Hg 客戶(hù)端,擁有可視化界面,容易上手操作。同時(shí)它也是Mercurial和Subversion版本控制系統(tǒng)工具。支持創(chuàng)建、提交、clone、push、pull 和merge等操作。

    二、SourceTree基本使用

    (以下以SourceTree For Mac V2.0.5.2中文版為例,托管平臺(tái)以Github為例)

  • 基本安裝
    1.1. 不建議在appstore直接搜索下載SourceTree,因?yàn)閍ppstore里的版本已經(jīng)十分老舊(好像是2012年更新的)。建議前往官網(wǎng)下載安裝最新版,我這里也提供一個(gè)SourceTree for Mac V2.0.5.2的百度云的方便鏈接。?傳送門(mén)→SourceTreeDownload
    1.2. 拖動(dòng)安裝,Launchpad中打開(kāi),continue,輸入github賬號(hào)按下一步完成即可。沒(méi)有Github賬號(hào)的朋友,也可以跳過(guò)本步驟完成安裝

  • 注冊(cè)GitHub(已有Github賬號(hào)的朋友請(qǐng)?zhí)^(guò)本步驟)
    2.1. 打開(kāi)Github官網(wǎng)?傳送門(mén)→Github
    2.2. 填寫(xiě)必要的信息,點(diǎn)擊sigh up for github

  • 2.3. 默認(rèn)選中免費(fèi)賬號(hào),點(diǎn)擊綠色的Finish sign up即可


  • 實(shí)踐入門(mén)-創(chuàng)建倉(cāng)庫(kù) clone&pull
    3.1. 創(chuàng)建倉(cāng)庫(kù)
    用我們剛才創(chuàng)建的賬號(hào)登陸github,在歡迎頁(yè)點(diǎn)擊“+ New repository“創(chuàng)建我們的倉(cāng)庫(kù)


    Create Repository 1
    或點(diǎn)擊右上角的“+”,然后再New repository亦可

    Create Repository 2
    3.2. 按照個(gè)人需要填寫(xiě)倉(cāng)庫(kù)名、倉(cāng)庫(kù)描述等,建議勾選“Initialize this repository with a README”(注意此處免費(fèi)賬戶(hù)只能選擇建立public(開(kāi)源)倉(cāng)庫(kù)),填寫(xiě)完成后點(diǎn)擊Create repository

    3.3. 至此,我們的倉(cāng)庫(kù)已經(jīng)創(chuàng)建成功。創(chuàng)建成功后,我們?cè)陧?yè)面的右下角找到鏈接,點(diǎn)擊復(fù)制

    Copy Link
    3.4. 打開(kāi)我們的SourceTree,點(diǎn)擊:“+新倉(cāng)庫(kù)”,選擇:“從URL克隆”

    Clone 1
    3.5. 粘貼我們的倉(cāng)庫(kù)鏈接至源URL,SourceTree會(huì)自動(dòng)幫我們生成目標(biāo)路徑(本地倉(cāng)庫(kù)路徑)以及名稱(chēng),點(diǎn)擊克隆

    Clone 2
    3.6. 等待數(shù)秒后,SourceTree會(huì)為我們自動(dòng)打開(kāi)我們剛才克隆的倉(cāng)庫(kù),選擇master選項(xiàng),這里我們可以看到我們倉(cāng)庫(kù)里的所有文件

    MainPage
    3.7. 接下來(lái)我們想要上傳一個(gè)項(xiàng)目至我們的遠(yuǎn)程Github倉(cāng)庫(kù)內(nèi)。我們點(diǎn)擊右上角“在Finder”中顯示。然后SourceTree會(huì)幫我們打開(kāi)我們的本地倉(cāng)庫(kù),我們將需要上傳的項(xiàng)目復(fù)制到本地的Finder文件夾內(nèi),然后關(guān)閉文件夾,回到主頁(yè)面。我們會(huì)發(fā)現(xiàn)工作副本出現(xiàn)了更改提示

    Change Notification
    3.8. 我們點(diǎn)擊工作副本,然后我們發(fā)現(xiàn)我們剛才上傳的文件都在未暫存文件當(dāng)中,此時(shí),我們勾選“未暫存文件”

    工作副本 1
    3.9. 發(fā)現(xiàn)我們的文件變成了已暫存文件。此時(shí),我們可以輸入更新信息,然后,點(diǎn)擊提交按鈕

    工作副本 2
    3.10. 我們切換回master分支,會(huì)發(fā)現(xiàn)master分支以及推送(Push)按鈕,都出現(xiàn)了更改提示。這表示SourceTree已經(jīng)將我們剛才添加的文件成功提交到本地倉(cāng)庫(kù),而本地倉(cāng)庫(kù)的內(nèi)容則比遠(yuǎn)程倉(cāng)庫(kù)超前了一個(gè)版本。我們這個(gè)時(shí)候點(diǎn)擊推送(Push)即可將本地倉(cāng)庫(kù)的內(nèi)容同步至遠(yuǎn)程倉(cāng)庫(kù)。

    Branch Master
    3.11. 點(diǎn)擊推送(push),等待片刻即可,我們重新登錄github網(wǎng)站,會(huì)發(fā)現(xiàn)我們剛才本地倉(cāng)庫(kù)的文件已經(jīng)成功推送到遠(yuǎn)程倉(cāng)庫(kù)

    Push
  • 實(shí)踐入門(mén)-參與開(kāi)源 Fork&pull request
    (以下以 [https://github.com/octocat/Spoon-Knife] 舉例)
    4.1. 首先打開(kāi)上述頁(yè)面,然后點(diǎn)擊右上角“fork”按鈕。fork意味著將他人的倉(cāng)庫(kù)復(fù)制到我們賬號(hào)中。如果我們想要參與開(kāi)源項(xiàng)目,首先要fork下別人的項(xiàng)目,然后在我們復(fù)制過(guò)來(lái)的倉(cāng)庫(kù)中,對(duì)別人的代碼做修改。


    fork
    4.2. fork完之后,我們用上文提到的方法,將自己賬號(hào)中的[Spoon-Knife]倉(cāng)庫(kù)克隆(clone)到本機(jī)SourceTree中,并在稍作更改后,推送(push)到自己賬號(hào)的遠(yuǎn)程倉(cāng)庫(kù)
    ?4.2.1 在SourceTree中建立新倉(cāng)庫(kù),并復(fù)制URL

    clone Spoon-Knife
    ?4.2.2 在本地倉(cāng)庫(kù)中稍作更改(如圖我新建了一個(gè)Test)

    Example
    ?4.2.3 通過(guò)上文方法推送(Push),登陸Github,進(jìn)入Spoon-Knife倉(cāng)庫(kù),發(fā)現(xiàn)test已經(jīng)上傳到我們賬號(hào)的遠(yuǎn)程倉(cāng)庫(kù)Spoon-Knife當(dāng)中

    Success
    4.3. 上傳完后,我們點(diǎn)擊Github branch旁的綠色按鈕

    Pull Request 1
    4.4. 之后我們會(huì)進(jìn)入一個(gè)Compare頁(yè)面,這個(gè)頁(yè)面用于比較作者倉(cāng)庫(kù)與我們倉(cāng)庫(kù)的文件的不同。Base fork:指的是作者倉(cāng)庫(kù)目錄地址;Head fork:指的是我們賬號(hào)中fork后所產(chǎn)生的倉(cāng)庫(kù)地址。我們點(diǎn)擊Create pull request即可

    Compare
    4.5. 然后我們會(huì)進(jìn)入一個(gè)Pull Request界面,在這里,我們可以輸入自己更改的原因/更改的內(nèi)容。這里寫(xiě)的文字會(huì)顯示給源代碼作者,如果作者接受了我們的推送請(qǐng)求(pull request)后,我們的代碼將會(huì)上傳到源代碼作者的倉(cāng)庫(kù)內(nèi),成功為開(kāi)源做貢獻(xiàn)。如果作者拒絕了我們的推送請(qǐng)求(pull request)后,我們的代碼將不會(huì)上傳到源代碼作者的倉(cāng)庫(kù)內(nèi)。

    Pull Request 2
    4.6. 我們點(diǎn)擊Create Pull Request即可,系統(tǒng)將自動(dòng)跳轉(zhuǎn)到等待回復(fù)的頁(yè)面,這里會(huì)顯示作者是否接受我們的代碼更改。

    Pull Request 3

    三、SourceTree&Git部分名詞解釋

  • 克隆(clone):從遠(yuǎn)程倉(cāng)庫(kù)URL加載創(chuàng)建一個(gè)與遠(yuǎn)程倉(cāng)庫(kù)一樣的本地倉(cāng)庫(kù)
  • 提交(commit):將暫存文件上傳到本地倉(cāng)庫(kù)(我們?cè)贔inder中對(duì)本地倉(cāng)庫(kù)做修改后一般都得先提交一次,再推送)
  • 檢出(checkout):切換不同分支
  • 添加(add):添加文件到暫存區(qū)
  • 移除(remove):移除文件至?xí)捍鎱^(qū)
  • 暫存(git stash):保存工作現(xiàn)場(chǎng)
  • 重置(reset):回到最近添加(add)/提交(commit)狀態(tài)
  • 合并(merge):將多個(gè)同名文件合并為一個(gè)文件,該文件包含多個(gè)同名文件的所有內(nèi)容,相同內(nèi)容抵消
  • 抓取(fetch):從遠(yuǎn)程倉(cāng)庫(kù)獲取信息并同步至本地倉(cāng)庫(kù)
  • 拉取(pull):從遠(yuǎn)程倉(cāng)庫(kù)獲取信息并同步至本地倉(cāng)庫(kù),并且自動(dòng)執(zhí)行合并(merge)操作,即?pull=fetch+merge
  • 推送(push):將本地倉(cāng)庫(kù)同步至遠(yuǎn)程倉(cāng)庫(kù),一般推送(push)前先拉取(pull)一次,確保一致
  • 分支(branch):創(chuàng)建/修改/刪除分枝
  • 標(biāo)簽(tag):給項(xiàng)目增添標(biāo)簽
  • 工作流(Git Flow):團(tuán)隊(duì)工作時(shí),每個(gè)人創(chuàng)建屬于自己的分枝(branch),確定無(wú)誤后提交到master分枝
  • 終端(terminal):可以輸入git命令行
  • 四、相關(guān)鏈接推薦

  • →Github help for mac?https://mac.github.com/help.html
  • →Github help for win?https://windows.github.com/help.html
  • →由淺到深學(xué)git??http://backlogtool.com/git-guide/tw/intro/intro1_1.html
  • http://www.jianshu.com/p/be9f0484af9d (鳴謝) ?

  • 上文均為個(gè)人拙見(jiàn),歡迎大家討論交流


    from:?http://www.voidcn.com/blog/jiahao8915/article/p-3660036.html

    《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專(zhuān)家共同創(chuàng)作,文字、視頻、音頻交互閱讀

    總結(jié)

    以上是生活随笔為你收集整理的Git使用教程与基本原理和Sourcetree基本使用探微的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。