• <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>
            隨筆 - 298  文章 - 377  trackbacks - 0
            <2009年6月>
            31123456
            78910111213
            14151617181920
            21222324252627
            2829301234
            567891011

            常用鏈接

            留言簿(34)

            隨筆分類

            隨筆檔案

            文章檔案

            相冊

            收藏夾

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            sudo chown -R git:git /home/git/repositories

            sudo chmod -R 777 /home/git/repositories

            git commit -am 'add Shop-Project and Shop group' 

            git remote add origin git@192.168.10.15:Shop-Project.git

            chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

            git clone git@192.168.10.15:gitosis-admin.git


            1. 安裝git

            emerge -av dev-util/git

            2.安裝gitosis

            git環境默認是可以直接使用的,但需要為每個成員開ssh權限帳號,且各個倉庫之間的交叉權限管理很麻煩,所以需要使用gitosis, 它無需為每個開發人員開設ssh帳號,安全方便。

            emerge -av gitosis

            如果提示這個包被mask了,需要編輯/etc/portage/package.keywords文件,在里面加入

            dev-util/gitosis ~amd64

            3.生成公鑰

            在客戶端使用

            ssh-keygen -t rsa

            來生成ssh的key,注意你的主機名需要是全部英文字符,不能有下劃線或者.之類的特殊字符,否則后面在服務端生成版本庫的時候會報錯。

            4.上傳公鑰

            從客戶端把剛剛生成的公鑰上傳到服務器上。

            scp ~/.ssh/id_rsa.pub USER@YOUR_SERVER:/tmp

            5.在服務端生成管理庫

            sudo -H -u git gitosis-init < /tmp/id_rsa.pub

            成功的話,你將看到類似下面的提示:

            Initialized empty Git repository in /var/spool/gitosis/repositories/gitosis-admin.git/

            Reinitialized existing Git repository in /var/spool/gitosis/repositories/gitosis-admin.git/

            設置post-update腳本權限

            chmod 755 /var/spool/gitosis/repositories/gitosis-admin.git/hooks/post-update

            至此,服務端配置已經完成。

            6.同步配置文件

            gitosis本身就是一個git庫,所以管理起來非常方便。下面在客戶端同步gitosis管理庫

            git clone git@YOUR_SERVER:gitosis-admin.git

            cd gitosis-admin

            你將看到以下文件

            -rw-r--r-- 1 garry garry 104 Nov 13 05:43 gitosis.conf

            drwxr-xr-x 3 garry garry 102 Nov 13 05:43 keydir/

            gitosis.conf是gitosis的配置文件,用于配置用戶和權限

            keydir/是所有組成員的公鑰

            我們可以在本地修改配置更改權限,然后push到服務端后,服務器端就立刻生效

            7.創建新的repositories

            打開gitosis.conf文件,你將看到

            [group gitosis-admin]

            writable = gitosis-admin

            members = elton@macbook

            這個是管理組的權限,members中的用戶名就是剛才上傳的公鑰里面的用戶名。

            在這個文件后面加入:

            [group myteam]

            members = elton@macbook

            writable = free_monkey

            這里你定義了一個叫myteam的組,授予elton@macbook這個用戶寫“free_monkey”這個repo的權限

            git commit -a -m "Allow elton write access to free_monkey"

            git push

            上面的操作就更新了服務端的權限。

            下面就開始創建free_monkey的repo

            mkdir free_monkey

            cd free_monkey

            git init

            創建 .gitignore 文件,用于忽略某些不需要進行代碼管理的內容,如rails的應用可能如下:

            .DS_Store

            log/*.log

            tmp/**/*

            config/database.yml

            db/*.sqlite3

            提交代碼:

            git remote add origin git@YOUR_SERVER_HOSTNAME:free_monkey.git

            git add .

            git commit -a -m "initial import"

            git push origin master:refs/heads/master

            接下來,可以增加成員的公鑰到系統中了

            cd gitosis-admin

            cp ~/alice.pub keydir/

            cp ~/bob.pub keydir/

            git add keydir/alice.pub keydir/bob.pub

            修改gitosis.conf

            [group myteam]

            - members = jdoe

            + members = jdoe alice bob

            writable = free_monkey

            提交修改:

            git commit -a -m "Granted Alice and Bob commit rights to FreeMonkey"

            git push

            其它成員就可以獲取代碼了

            git clone git@YOUR_SERVER:free_monkey.git

            @import url(http://www.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
            posted on 2016-06-04 10:36 聶文龍 閱讀(316) 評論(1)  編輯 收藏 引用

            FeedBack:
            # re: Git install on Debian system. 2016-06-06 11:59 聶文龍
            解決 .gitignore 不生效 刷新本地緩存

            git rm -r --cached .
            git add .
            git commit -m 'update .gitignore'  回復  更多評論
              
            国产精品一区二区久久精品涩爱| 无码AV波多野结衣久久| 97久久精品无码一区二区天美| 无码人妻久久一区二区三区免费 | 久久久久九九精品影院| 四虎国产精品免费久久| 亚洲精品乱码久久久久久蜜桃图片| 色88久久久久高潮综合影院| 青青草国产精品久久久久| 欧美性猛交xxxx免费看久久久 | 亚洲日韩中文无码久久| 国产精品久久毛片完整版| 伊人色综合九久久天天蜜桃| 久久99精品久久只有精品| 久久亚洲国产成人影院| 成人精品一区二区久久| 少妇久久久久久被弄高潮| 开心久久婷婷综合中文字幕| 中文字幕久久欲求不满| av色综合久久天堂av色综合在 | 久久久久亚洲av成人网人人软件| 91精品国产乱码久久久久久| 久久久精品国产免大香伊 | 久久久久亚洲AV无码专区桃色| 色综合久久中文字幕无码| 青春久久| 久久综合视频网站| 久久毛片免费看一区二区三区| 无码久久精品国产亚洲Av影片| 欧美亚洲国产精品久久| 久久影视综合亚洲| 久久久久久A亚洲欧洲AV冫| 久久综合久久综合久久综合| 久久久久亚洲AV无码永不| 波多野结衣久久一区二区| 久久亚洲国产成人影院| 久久人人爽人人爽人人片av麻烦| 久久久高清免费视频| 热99RE久久精品这里都是精品免费 | 久久久久久亚洲精品无码| 精品一久久香蕉国产线看播放|