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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

使用git管理github项目

發(fā)布時間:2023/12/15 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用git管理github项目 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

http://progit.org/book/zh/

?

Git是一個分布式的版本控制系統(tǒng),最初由Linus Torvalds編寫,用作Linux內(nèi)核代碼的管理。在推出后,Git在其它項目中也取得了很大成功,尤其是在Ruby社區(qū)中。目前,包括Rubinius和Merb在內(nèi)的很多知名項目都使用了Git。Git同樣可以被諸如Capistrano和Vlad the Deployer這樣的部署工具所使用。

目前大部分的版本控制都需要一個服務(wù)器端,commit時提交到服務(wù)器端。git雖然是分布式的管理工具,但它也可以使用集中管理的方式。舉例來說,billy創(chuàng)建了一個新項目,tom覺得這個項目比較有意思,他想玩玩看,他可以把整個repo(reoisitories)都clone到本地,并且在他clone下來的項目中自己有一個repo。tom可以自由的對這個repo做各種提交修改,直到他滿意為止。這時tom可以告訴billy,他改了一些什么,若billy覺得不錯,可以從tom那邊f(xié)etch并merge到本地。

如前所述,作為一個分布式的版本控制系統(tǒng),在Git中并不存在主庫這樣的概念,每一份復(fù)制出的庫都可以獨立使用,任何兩個庫之間的不一致之處都可以進行合并。正因為如此,所以有了Github這個網(wǎng)站,github是基于ruby的并揉合多種語言進行開發(fā)的,上面的ruby項目也非常活躍。在github 中,每個人都可以有多個repo,這些repo都是與用戶綁定在一起的。user之間可以互相clone repo、fork repo、watch repo或是 follow其他user,就好像twitter或是plurk等社交網(wǎng)站一樣。

不過若使用免費的github則所有的repo都要是public且有300M容量的限制。若希望有private的repo,則需要跟付費才可。github另外還有剪貼簿的功能,可將代碼貼到其中并自由的發(fā)展各種branch。

GitHub可以托管各種git庫,并提供一個web界面,但與其它像 SourceForge或Google Code這樣的服務(wù)不同,GitHub的獨特賣點在于從另外一個項目進行分支的簡易性。為一個項目貢獻代碼非常簡單:首先點擊項目站點的“fork”的按 鈕,然后將代碼檢出并將修改加入到剛才分出的代碼庫中,最后通過內(nèi)建的“pull request”機制向項目負責(zé)人申請代碼合并。已經(jīng)有人將GitHub稱為代碼玩家的MySpace:

在GitHub進行分支就像在Myspace(或Facebook [...])進行交友一樣,在社會關(guān)系圖的節(jié)點中不斷的連線。

GitHub項目本身自然而然的也在GitHub上就行托管,只不過在一個私有的,公共視圖不可見的庫中。開源項目可以免費托管,但私有庫則并不如此。Chris Wanstrath,GitHub的開發(fā)者之一,肯定了通過付費的私有庫來在財務(wù)上支持免費庫的托管這一計劃。

是的,我們正是這么計劃的。通過與客戶的接洽,開發(fā)FamSpam,甚至是開發(fā)GitHub本身,GitHub的私有 庫已經(jīng)被證明了物有所值。任何希望節(jié)省時間并希望和團隊其它成員一樣遠離頁面頻繁轉(zhuǎn)換之苦的人士都會從 GitHub中獲得他們真正想要的價值。

Chris Wanstrath還向InfoQ分享了關(guān)于GitHub的一些內(nèi)幕信息:

GitHub主要用Rails實現(xiàn)。我們目前在進行的post-commit集成小應(yīng)用完全使用Merb編寫。我們使用了 Python的Pygments來做格式高亮顯示,另外還用了Ara T. Howard's Bj加上一些Ruby腳本來做我們的排隊 系統(tǒng)。當(dāng)然,我們用了Ruby Grit庫來和Git進行交互。

GitHub已經(jīng)有了一組引人注目的特性,除了命令式的庫瀏覽器和一個項目Wik,GitHub甚至還包括了一個GitHub gem,以使通過shell方式使用GitHub更為方便。更多的未來特性已經(jīng)在計劃中:

許多人都希望能有一個條目系統(tǒng),因此一個簡單的條目系統(tǒng)已經(jīng)在開發(fā)中。此外,正如我前面所言,我們尚在 進行RubyGems服務(wù)器和一些之前留出的post-commit鉤子方面的工作。如果你不能或就是不想托管一個你 自己的守護進程,你可以使用我們所提供的。我們還在開發(fā)一些特性來幫助公司在使用Github時可以停留在sync之上。最后,我們也在進行API發(fā)布方面的工作。我們很快就會發(fā)布一些只讀性的API,隨后是一些很強大的“寫”集 成。你可以使用API將新的事件發(fā)布到新聞feed中,發(fā)消息和做其他許多很酷的事情。

更多關(guān)于GitHub的信息可以參見GitHub官方網(wǎng)站或GitHub博客。目前通過GitHub進行代碼管理的開源項目列表也已經(jīng)可以查閱。

下面先來介紹如何將環(huán)境配置好:配置環(huán)境分為三個步驟,安裝與設(shè)置git,安裝與設(shè)置ssh-key,以及在github上注冊并建立repo。

  • 安裝與設(shè)置git
    Linux:只要用yum,apt-get等安裝即可,或是下載之后編譯安裝。
    Mac OS X:從這里下載并安裝。
    Windows:先安裝putty,然后從這里下載并安裝。
  • 安裝與設(shè)置ssh-key
    git使用ssh tunnel來提交源碼,這個加密通道可以避免源碼的封包被攔截而截取。因此要先產(chǎn)生并上傳ssh key到github,方便之後與服務(wù)器之間的通迅。
    Mac OS X與Linux,只要輸入ssh-keygen -t rsa并根據(jù)指示操作即可:

    ?

    [~/.ssh]$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/tom/.ssh/id_rsa): <enter> Enter passphrase (empty for no passphrase): <輸入key的密碼,或直接按下enter使用空密碼> Enter same passphrase again: <再輸入一次密碼> Your identification has been saved in /home/tom/.ssh/id_rsa. Your public key has been saved in /home/tom/.ssh/id_rsa.pub. The key fingerprint is: 50:43:77:c6:97:af:61:82:dc:ea:9b:6b:67:d4:1b:61 tom@volcano

    其中id_rsa.pub是公鑰,而id_rsa則是私鑰,請妥善保存以免遺失,它們都存放于~/.ssh目錄中。將公鑰粘貼到你github帳號中的SSH Public Keys的位置。注意小心不要復(fù)制到空格。

    Windows,執(zhí)行g(shù)it-bash并輸入:

    ssh-keygen -C “username@email.com” -t rsa
  • github注冊
    在github你的帳號右上角可以看到一個Your Repositories,選擇Create one。輸入Project name后,可以看到它有教你如何創(chuàng)建一個新的項目。

    ?

    這里以一個名為test的項目為例:

    # Global setup:# Download and install Git git config --global user.email <your email> git config --global user.name <your name># Next steps: mkdir test # cd test git init # github會自動讀取你的README內(nèi)容并顯示在項目簡介中,因此先創(chuàng)建README touch README # 將README加到index中 git add README # 提交到版本庫中 git commit -m 'first commit' # 把github的repo加入為遠程的repo git remote add origin git@github.com:<你的ID>/test.git # 把目前的commit狀態(tài)push并同步到github上面 git push origin master# Existing Git Repo? cd existing_git_repo git remote add origin git@github.com:<你的ID>/test.git git push origin master

    把你的程序push上github后就可以有自己的repo了。

    若您喜歡別人的repo,只要他是public的,就可以點擊上面的fork,把整個repo復(fù)制到你的帳戶底下并修改提交后再請求原作者進行pull。

    若你fork了一個repo(名為test)到github中之后,只要輸入:

    git clone git@github.com:<ID>/test.git test

    就可以將整個repo復(fù)制下來并存放在test目錄中。若你的ssh key有加上密碼保護,每次與github通信的過程中都需要輸入密碼以存取ssh key。

  • git的簡單使用:

    # 創(chuàng)建一個版本庫 git init # 每次修改好了后,可以先將修改存入stage(快照/索引)中 git add <modified files> # 修改了大量文件則使用下面這個命令批量存入 git add . # 使用commit將快照/索引中的內(nèi)容提交到版本庫中 git commit -m "msg" # 也可以將git add與git commit用一個指令完成 git commit -a -m "msg" # 將本地的git檔案與github(遠程)上的同步 git push # 將github(遠程)的git檔案與本地的同步(即更新本地端的repo) git pull # 例如,pull指令其實包含了fetch(將變更復(fù)制回來)以及merge(合并)操作 git pull git://github.com/tom/test.git# 另外版本控制系統(tǒng)的branch功能也很有意思,若同時修改bug,又要加入新功能,可以fork出一個branch:一個專門修bug,一個專門加入新功能,等到穩(wěn)定后再merge合并 git branch bug_fix # 建立branch,名為bug_fix git checkout bug_fix # 切換到bug_fix git checkout master #切換到主要的repo git merge bug_fix #把bug_fix這個branch和現(xiàn)在的branch合并# 若有remote的branch,想要查看并checkout git branch -r # 查看遠程branch git checkout -b bug_fix_local bug_fix_remote #把本地端切換為遠程的bug_fix_remote branch并命名為bug_fix_local# 還有其它可以查看repo狀態(tài)的工具 git log #可以查看每次commit的改變 git diff #可以查看最近一次改變的內(nèi)容,加上參數(shù)可以看其它的改變并互相比較 git show #可以看某次的變更# 若想知道目前工作樹的狀態(tài),可以輸入 git status

    轉(zhuǎn)載于:https://www.cnblogs.com/yuzaipiaofei/archive/2012/03/03/4124253.html

    總結(jié)

    以上是生活随笔為你收集整理的使用git管理github项目的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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