青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

羅朝輝(飄飄白云)

關(guān)注嵌入式操作系統(tǒng),移動(dòng)平臺,圖形開發(fā)。-->加微博 ^_^

  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  85 隨筆 :: 0 文章 :: 169 評論 :: 0 Trackbacks
@import url(http://m.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
Mac 下配置 Git 服務(wù)器
羅朝輝 (http://m.shnenglu.com/kesalin)
CC 許可,轉(zhuǎn)載請注明出處

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

本文文檔:點(diǎn)此下載

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


2,設(shè)置遠(yuǎn)程訪問
logout 當(dāng)前賬戶,使用 git 賬戶登錄;在 System Preferences->Sharing 中,勾選:Web Sharing 和 Remote Logig。

二,下載安裝 gitosis
1,Mac Snow默認(rèn)已經(jīng)為我們安裝了 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,進(jìn)入 gitosis 目錄,使用命令 "sudo python setup.py install" 來執(zhí)行 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 機(jī)器上,制作 ssh 公鑰。在這里我的使用同一臺機(jī)器上的另一個(gè)賬戶作為 client。如果作為 client 的機(jī)器與作為 server 的機(jī)器不是同一臺,也是類型的流程:制作公鑰,放置到服務(wù)的 /tmp 目錄下。只不過在同一臺機(jī)器上,我們可以通過開啟另一個(gè) terminal,使用 su 切換到 local 賬戶就可以同時(shí)操作兩個(gè)賬戶。
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 賬戶(只有在同一臺機(jī)器上才有效),然后進(jìn)入到 local 賬戶的 home 目錄,使用 ssh-keygen -t rsa 生成 id_rsa.pub,最后將該文件拷貝放置到  /tmp/yourname.pub,這樣 git 賬戶就可以訪問 yourname.pub了,在這里改名是為了便于在 git 中辨識多個(gè) client。

四,使用 ssh 公鑰初始化 gitosis
1,不論你是以那種方式(郵件,usb等等)拷貝 yourname.pub 至服務(wù)器的 /tmp/yourname.pub。下面的流程都是一樣,登入服務(wù)器機(jī)器的 git 賬戶,進(jìn)入先前提到 gitosis 目錄,進(jìn)行如下操作初始化 gitosis,初始化完成后,會(huì)在 git 的 home 下創(chuàng)建 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/

在這里,會(huì)將該 client 當(dāng)做認(rèn)證受信任的賬戶,因此在 git 的 home 目錄下會(huì)有記錄,文件 authorized_keys 的內(nèi)容與 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 賦予可寫權(quán)限,以便 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 進(jìn)行配置管理等等,而無需使用服務(wù)器的 git 賬戶進(jìn)行。

最后一步,修改 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

至此,服務(wù)器的配置完成。

五,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,測試服務(wù)器是否連接正確,將 10.1.4.211 換成你服務(wù)的名稱或服務(wù)器地址即可。
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 服務(wù)器倉庫,下面以 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 

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

4,在本地管理 gitosis-admin:
進(jìn)入 gitosis-admin 目錄,我們來查看一下其目錄結(jié)構(gòu):gitosis.conf 文件是一個(gè)配置文件,里面定義哪些用戶可以訪問哪些倉庫,我們可以修改這個(gè)配置;keydir 是存放ssh 公鑰的地方。
bash-3.2cd gitosis-admin/
bash-3.2ls
gitosis.conf keydir
bash-3.2cd keydir/
bash-3.2ls
yourname.pub

我們只需要將其他 client 產(chǎn)生的 ssh 公鑰添加到 keydir 目錄下,并在 gitosis.conf 文件中配置這些用戶可以訪問的倉庫(用戶名與放置在 keydir 下sh 公鑰名相同,這就是在前面我們要修改ssh 公鑰名的原因),然后將改動(dòng)提交至服務(wù)器,這樣就可以讓其他的 client 端訪問服務(wù)器的代碼倉庫了。
posted on 2011-11-07 16:09 羅朝輝 閱讀(9798) 評論(2)  編輯 收藏 引用 所屬分類: Cocoa 開發(fā)

評論

# re: Mac 下配置 Git 服務(wù)器 2013-06-10 22:18 wzy
大神。能給個(gè)qq私聊么?  回復(fù)  更多評論
  

# re: Mac 下配置 Git 服務(wù)器 2014-06-23 19:52 liang
有沒有例子介紹一下本地服務(wù)器建立后,如何將一個(gè)本地工程push到服務(wù)器呢?謝啦  回復(fù)  更多評論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久久久精| 亚洲欧美激情一区| 亚洲少妇最新在线视频| 亚洲品质自拍| 日韩视频一区二区| 99xxxx成人网| 亚洲欧美视频在线观看| 久久爱www| 久久夜色撩人精品| 亚洲高清免费视频| 亚洲欧洲一区二区三区久久| 亚洲日本欧美日韩高观看| 亚洲私人黄色宅男| 久久久夜色精品亚洲| 欧美日韩高清在线观看| 国产精品网站在线观看| 亚洲大胆美女视频| 亚洲欧美国产精品桃花| 久久综合999| 一区二区三区欧美在线| 久久激情一区| 欧美日韩在线不卡| 国产一区视频在线观看免费| 亚洲日韩成人| 久久久久久亚洲精品不卡4k岛国| 亚洲承认在线| 久久福利电影| 欧美视频1区| 曰韩精品一区二区| 亚洲女同性videos| 亚洲国产91| 久久久国产精品一区| 欧美理论片在线观看| 国产一区二区精品久久| 99精品欧美一区二区三区综合在线| 欧美亚洲免费高清在线观看| 亚洲国产一区视频| 久久久青草青青国产亚洲免观| 欧美日韩综合另类| ●精品国产综合乱码久久久久| 亚洲精品国产精品国自产在线| 性色av一区二区三区| 亚洲精品中文字幕在线观看| 久久不射中文字幕| 国产精品中文在线| 亚洲视频axxx| 亚洲精品久久久一区二区三区| 久久久精品tv| 国产亚洲精品一区二区| 99精品视频免费全部在线| 国产午夜精品一区二区三区欧美| 亚洲第一色中文字幕| 欧美一区二区在线| 中文欧美字幕免费| 欧美视频在线看| 99精品99久久久久久宅男| 欧美 亚欧 日韩视频在线| 久久国内精品自在自线400部| 国产精品亚洲аv天堂网| 亚洲欧美视频一区二区三区| 99国产精品自拍| 欧美日韩精品免费观看视频| 亚洲激情影院| 亚洲激情校园春色| 欧美日韩在线播放一区| 中文日韩电影网站| 一区二区三区视频观看| 国产精品日韩一区二区三区| 欧美亚洲午夜视频在线观看| 欧美中文字幕视频| 极品少妇一区二区三区精品视频| 久久人人97超碰国产公开结果 | 亚洲欧美一区二区三区久久| 一本在线高清不卡dvd| 国产精品99一区二区| 亚洲欧美日韩综合| 午夜久久久久久| 精品96久久久久久中文字幕无| 老司机一区二区三区| 久久久久国产一区二区三区四区| 亚洲国产精品福利| 妖精视频成人观看www| 国产精品久久波多野结衣| 欧美一区二区三区免费观看 | 久久精品国产综合精品| 在线看视频不卡| 最新日韩中文字幕| 国产精品免费看片| 久久综合久久综合九色| 欧美成人一区在线| 午夜精品在线看| 久久久久久亚洲综合影院红桃| 日韩视频在线观看免费| 亚洲女与黑人做爰| 亚洲人成77777在线观看网| 亚洲视频欧美视频| 亚洲国产综合视频在线观看| 亚洲视频欧洲视频| 亚洲国产精品一区制服丝袜 | 亚洲欧美国产精品桃花| 亚洲福利专区| 亚洲欧美精品一区| 日韩亚洲视频在线| 亚洲一区二区在线播放| 毛片一区二区| 欧美视频一区在线| 老司机凹凸av亚洲导航| 欧美午夜精品电影| 欧美第十八页| 国产日韩欧美在线一区| 日韩性生活视频| 亚洲高清资源综合久久精品| 亚洲欧美中文另类| 亚洲少妇中出一区| 欧美韩日视频| 免费在线观看成人av| 国产日韩欧美在线| 亚洲在线免费| 亚洲一区区二区| 欧美激情第一页xxx| 久久久亚洲一区| 国产日韩一级二级三级| 99亚洲伊人久久精品影院红桃| 亚洲高清资源| 久久综合九九| 狼狼综合久久久久综合网| 国产精品地址| 9久re热视频在线精品| 夜夜狂射影院欧美极品| 欧美激情精品久久久久久黑人| 美脚丝袜一区二区三区在线观看 | 国产精品久久久久av免费| 亚洲国产乱码最新视频| 亚洲激情在线视频| 免费成人av资源网| 欧美国产精品人人做人人爱| 亚洲国产成人在线视频| 久久国内精品视频| 久久欧美肥婆一二区| 国产一区二区看久久| 欧美在线黄色| 久久影音先锋| 在线看日韩欧美| 蜜臀99久久精品久久久久久软件 | 亚洲国产视频直播| 你懂的国产精品| 91久久精品美女| 一区二区三区精品视频| 欧美日韩免费一区二区三区视频| 亚洲日本成人女熟在线观看| 在线视频欧美精品| 国产精品久久久一本精品| 亚洲一区高清| 久久在线视频在线| 亚洲三级免费| 国产精品理论片| 久久国产精品久久精品国产| 毛片av中文字幕一区二区| 亚洲精品视频中文字幕| 欧美三级中文字幕在线观看| 亚洲一区综合| 欧美成人午夜激情视频| 夜夜爽www精品| 国产又爽又黄的激情精品视频| 久久婷婷国产麻豆91天堂| 亚洲精品在线视频| 久久久久久亚洲精品中文字幕| 亚洲国产欧美国产综合一区| 亚洲激情综合| 欧美国产日韩二区| 亚洲日本成人| 久久精品首页| 亚洲欧洲日本国产| 国产精品普通话对白| 久久久久久免费| 在线中文字幕不卡| 免费成人高清视频| 亚洲欧美日韩在线高清直播| 有码中文亚洲精品| 国产精品免费观看视频| 美女视频黄 久久| 亚洲欧美国产不卡| 亚洲人成亚洲人成在线观看| 久久久精品性| 亚洲一区二区三区精品视频| 一区二区在线看| 国产精品网站在线| 欧美精选午夜久久久乱码6080| 午夜精品久久久久久久99热浪潮 | 国产精品国产a| 蜜臀av在线播放一区二区三区| 亚洲一级网站| 91久久久久久久久久久久久| 久久综合激情| 欧美一区二区三区四区在线观看 | 亚洲欧美日产图| 91久久精品日日躁夜夜躁国产| 国产欧美精品日韩精品| 国产精品久久久久久久久果冻传媒 | 欧美va日韩va|