<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      [Cocoa]Mac下配置Git服務器

      Mac下配置Git服務器

      羅朝輝 (http://www.rzrgm.cn/kesalin/)

      本文遵循“署名-非商業用途-保持一致”創作公用協議


      XCode 4 默認支持 Git 作為代碼倉庫,當我們新建一個倉庫的時候,可以勾選創建默認倉庫,只不過這個倉庫是在本地的。本文介紹如何在 mac 機器上創建 Git 服務器,總體思路是:使用 gitosis 來簡化創建過程,在用作服務器的機器上創建一個名為 git 的賬戶來創建 git 服務器,其他客戶端通過 ssh 機制訪問 git 服務器。

      本文文檔:點此下載


      一,創建 git 賬戶

      1,在用作服務器的機器 Server 上創建 git 賬戶。我們可以通過 System Preferences->accounts 來添加。在這里我添加一個 git 的 administrator 賬戶,administrator 不是必須的,在這里僅僅為了方便

       

      2,設置遠程訪問
      logout 當前賬戶,使用 git 賬戶登錄;在 System Preferences->Sharing 中,勾選:Web Sharing 和 Remote Logig。

      二,下載安裝 gitosis

      1,Mac Snow默認已經為我們安裝了 Git 和 Python,可以使用如下命令查看其版本信息:

      yourname:~ git$ git --version
      git version 1.7.3.4
      yourname:~ git$ python --version
      Python 2.6.1


      2,通過命令 "git clone git://eagain.net/gitosis.git" 來下載 gitosis

      yourname:~ git$ git clone git://eagain.net/gitosis.git
      Cloning into gitosis
      remote: Counting objects: 614, done.
      remote: Compressing objects: 100% (183/183), done.
      remote: Total 614 (delta 434), reused 594 (delta 422)
      Receiving objects: 100% (614/614), 93.82 KiB | 45 KiB/s, done.
      Resolving deltas: 100% (434/434), done.


      3,進入 gitosis 目錄,使用命令 "sudo python setup.py install" 來執行 python 腳本來安裝 gitosis。

      yourname:~ git$ cd gitosis/
      yourname:gitosis git$ sudo python setup.py install
      running install
      running bdist_egg
      running egg_info
      creating gitosis.egg-info
      ……
      Using /Library/Python/2.6/site-packages/setuptools-0.6c9-py2.6.egg
      Finished processing dependencies for gitosis==0.2


      三,制作 ssh rsa 公鑰

      1,回到 client 機器上,制作 ssh 公鑰。在這里我的使用同一臺機器上的另一個賬戶作為 client。如果作為 client 的機器與作為 server 的機器不是同一臺,也是類型的流程:制作公鑰,放置到服務的 /tmp 目錄下。只不過在同一臺機器上,我們可以通過開啟另一個 terminal,使用 su 切換到 local 賬戶就可以同時操作兩個賬戶。

      yourname:~ git$ su local_account
      Password:
      bash-3.2cd ~
      bash-3.2ssh-keygen -t rsa
      Generating public/private rsa key pair.
      Enter file in which to save the key (/Users/local_account/.ssh/id_rsa): 
      Enter passphrase (empty for no passphrase): 
      Enter same passphrase again: 
      Your identification has been saved in /Users/local_account/.ssh/id_rsa.
      Your public key has been saved in /Users/local_account/.ssh/id_rsa.pub.

      bash-3.2cd .ssh
      bash-3.2ls
      id_rsa        id_rsa.pub
      bash-3.2cp id_rsa.pub /tmp/yourame.pub


      在上面的命令里,首先通過 su 切換到 local 賬戶(只有在同一臺機器上才有效),然后進入到 local 賬戶的 home 目錄,使用 ssh-keygen -t rsa 生成 id_rsa.pub,最后將該文件拷貝放置到  /tmp/yourname.pub,這樣 git 賬戶就可以訪問 yourname.pub了,在這里改名是為了便于在 git 中辨識多個 client。


      四,使用 ssh 公鑰初始化 gitosis

      1,不論你是以那種方式(郵件,usb等等)拷貝 yourname.pub 至服務器的 /tmp/yourname.pub。下面的流程都是一樣,登入服務器機器的 git 賬戶,進入先前提到 gitosis 目錄,進行如下操作初始化 gitosis,初始化完成后,會在 git 的 home 下創建 repositories 目錄。

      yourname:gitosis git$ sudo --u git gitosis-init < /tmp/yourname.pub
      Initialized empty Git repository in /Users/git/repositories/gitosis-admin.git/
      Reinitialized existing Git repository in /Users/git/repositories/gitosis-admin.git/


      在這里,會將該 client 當做認證受信任的賬戶,因此在 git 的 home 目錄下會有記錄,文件 authorized_keys 的內容與 yourname.pub 差不多。

      yourname:~ git$ cd ~
      yourname:~ git$ cd .ssh
      yourname:.ssh git$ ls
      authorized_keys


      我們需要將 authorizd_keys 稍做修改,用文本編輯器打開它,刪除里面的

      "command="gitosis-serve yourname",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty "

      這一行:

      yourname:.ssh git$ open -e authorized_keys 


      然后,我們對 post-update 賦予可寫權限,以便 client 端可以提交更改。

      yourname:gitosis git$ sudo chmod 755 /Users/git/repositories//gitosis-admin.git/hooks/post-update
      Password:
      yourname:.ssh git$ cd ~
      yourname:~ git$ cd repositories/
      yourname:repositories git$ ls
      gitosis-admin.git
      yourname:repositories git$


      在上面的命令中可以看到,gitosis 也是作為倉庫的形式給出,我們可以在其他賬戶下 checkout,然后對 gitosis 進行配置管理等等,而無需使用服務器的 git 賬戶進行。

      最后一步,修改 git 賬戶的 PATH 路徑:

      yourname:gitosis git$ touch ~/.bashrc
      yourname:gitosis git$ echo PATH=/usr/local/bin:/usr/local/git/bin:\$PATH > .bashrc
      yourname:gitosis git$ echo export PATH >> .bashrc
      yourname:gitosis git$ cat .bashrc 
      PATH=/usr/local/bin:/usr/local/git/bin:$PATH
      export PATH 


      至此,服務器的配置完成。


      五,client 配置

      1,回到 local 賬戶,首先在 terminal 輸入如下命令修改 local 的 git 配置:

      bash-3.2git config --global user.name "yourgitname"
      bash-3.2git config --global user.email "yourmail@yourcom.com"


      2,測試服務器是否連接正確,將 10.1.4.211 換成你服務的名稱或服務器地址即可。

      yourname:~ local_account$ ssh git@10.1.4.211
      Last login: Mon Nov  7 13:11:38 2011 from 10.1.4.211


      3,在本地 clone 服務器倉庫,下面以 gitosis-admin.git 為例:

      bash-3.2git clone git@10.1.4.211:repositories/gitosis-admin.git
      Cloning into gitosis-admin
      remote: Counting objects: 5, done.
      remote: Compressing objects: 100% (5/5), done.
      remote: Total 5 (delta 0), reused 5 (delta 0)
      Receiving objects: 100% (5/5), done.
      bash-3.2ls
      Desktop        InstallApp    Music        Sites
      Documents    Library        Pictures    gitosis-admin
      Downloads    Movies        Public
      bash-3.2$ git 


      在上面的輸出中可以看到,我們已經成功 clone 服務器的 gitosis-admin 倉庫至本地了。

      4,在本地管理 gitosis-admin:
      進入 gitosis-admin 目錄,我們來查看一下其目錄結構:gitosis.conf 文件是一個配置文件,里面定義哪些用戶可以訪問哪些倉庫,我們可以修改這個配置;keydir 是存放ssh 公鑰的地方。

      bash-3.2cd gitosis-admin/
      bash-3.2ls
      gitosis.conf keydir
      bash-3.2cd keydir/
      bash-3.2ls
      yourname.pub

       
      我們只需要將其他 client 產生的 ssh 公鑰添加到 keydir 目錄下,并在 gitosis.conf 文件中配置這些用戶可以訪問的倉庫(用戶名與放置在 keydir 下sh 公鑰名相同,這就是在前面我們要修改ssh 公鑰名的原因),然后將改動提交至服務器,這樣就可以讓其他的 client 端訪問服務器的代碼倉庫了。
      posted @ 2011-11-07 16:09  飄飄白云  閱讀(1283)  評論(0)    收藏  舉報
      本博客遵循 Creative Commons License “署名-非商業用途-保持一致”創作共用協議。 與我聯系
      主站蜘蛛池模板: 欧美视频免费一区二区三区| 国产成人剧情AV麻豆果冻| 亚洲天堂成人一区二区三区| 久久精品国产国产精品四凭| 午夜不卡久久精品无码免费| 在线 欧美 中文 亚洲 精品| 九九热精品在线观看| 午夜福利片1000无码免费| 日本丰满少妇裸体自慰| 国产免费高清69式视频在线观看| 亚洲国产一区二区av| 男女性杂交内射女bbwxz| 亚洲国产欧美在线人成AAAA| 搜索| 婷婷99视频精品全部在线观看| 在线无码免费看黄网站| 日韩av日韩av在线| 国产成人精品aa毛片| 久久青草国产精品一区| 1区2区3区4区产品不卡码网站| 日本熟妇XXXX潮喷视频| 日本牲交大片免费观看| 久久这里都是精品二| 欧美做受视频播放| 久久综合狠狠综合久久| 甘德县| 国产剧情视频一区二区麻豆| 亚洲综合激情五月色一区| 忍着娇喘人妻被中出中文字幕 | 亚洲欧洲av一区二区| 激情综合色综合啪啪五月| 体验区试看120秒啪啪免费| 随州市| 国产又爽又黄又刺激的视频| 国产成人精品视频不卡| 免费视频国产在线观看| 亚洲熟妇熟女久久精品综合| 九九热精品免费在线视频| 97精品人妻系列无码人妻| 99在线视频免费观看| 激情文学一区二区国产区|