• <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
            <2007年7月>
            24252627282930
            1234567
            891011121314
            15161718192021
            22232425262728
            2930311234

            常用鏈接

            留言簿(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://m.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
            posted on 2016-06-04 10:36 聶文龍 閱讀(322) 評論(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'  回復  更多評論
              
            久久久久久久91精品免费观看| 久久国产精品免费一区二区三区| 国产精品免费看久久久香蕉| 久久精品国产99国产精偷| 久久精品一区二区国产| 伊人精品久久久久7777| 少妇内射兰兰久久| 日韩欧美亚洲综合久久影院Ds| 久久人人爽人人爽人人片AV东京热| 无码人妻精品一区二区三区久久| 久久久无码人妻精品无码| 欧美与黑人午夜性猛交久久久| 精品无码久久久久国产动漫3d| 97久久精品午夜一区二区| 久久免费国产精品| 久久精品成人影院| 久久综合久久综合久久| 高清免费久久午夜精品| 久久中文骚妇内射| 久久久无码精品亚洲日韩京东传媒 | 国产精品一区二区久久 | 丰满少妇人妻久久久久久| 久久午夜免费视频| 色综合久久久久无码专区| 伊人久久大香线蕉综合5g| 国产激情久久久久影院老熟女免费| 久久久久久久免费视频| 久久综合视频网| 久久午夜无码鲁丝片| 亚洲国产天堂久久综合网站| 国内精品久久久久久久coent| 久久中文字幕一区二区| 久久精品国产黑森林| 色狠狠久久AV五月综合| 久久精品国产亚洲一区二区| 久久久久国产精品嫩草影院 | 国内精品久久久久国产盗摄| 欧美国产精品久久高清| 久久久无码一区二区三区| 久久婷婷是五月综合色狠狠| 一级做a爱片久久毛片|