• <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
            <2008年2月>
            272829303112
            3456789
            10111213141516
            17181920212223
            2425262728291
            2345678

            常用鏈接

            留言簿(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 聶文龍 閱讀(327) 評論(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'  回復  更多評論
              
            69久久精品无码一区二区| 亚洲一区中文字幕久久| 亚洲欧美成人综合久久久| 久久久久久午夜成人影院| 国产精品久久成人影院| 91久久精品国产91性色也| 色综合久久天天综线观看| 日产精品久久久久久久| 久久99精品久久久久久野外| 亚洲中文字幕久久精品无码APP| 久久久久久免费一区二区三区| 久久无码一区二区三区少妇| 久久99精品久久久久久久不卡 | 亚洲国产精品一区二区三区久久 | 久久久久久亚洲精品成人| 国产一区二区精品久久岳| 亚洲伊人久久大香线蕉综合图片| 国产精品一区二区久久| 亚洲精品无码成人片久久| 亚洲性久久久影院| 久久久久国产一区二区| 九九精品99久久久香蕉| 一本色道久久HEZYO无码| 亚洲精品高清一二区久久| 国产精品久久久久久久午夜片| 97久久精品人妻人人搡人人玩| 久久精品国产免费观看| 人人狠狠综合久久亚洲高清| 国内精品欧美久久精品| 国产精品成人精品久久久| 久久99久久无码毛片一区二区 | 久久人人爽人人爽人人片AV不 | 99久久精品国内| 精品久久久久久久无码| 丰满少妇人妻久久久久久| 伊人久久综合成人网| 亚洲AV无码久久精品蜜桃| 久久精品国产亚洲AV无码麻豆| 久久只有这精品99| 久久久久久久综合日本亚洲| 久久久久久久91精品免费观看|