描 述javascript
要開發一個」cms系統「,有2我的分別是:曉飛, 盈月。要求使用Git來進行版本控制。java
項目信息python
版本控制:Gitjquery
項目名稱:cmslinux
開發人員:xiaofei,yingyuegit
------------------------------------------------------------------------------------------------------------------------------------------------------github
概 要web
一、服務器上安裝Git依賴及Gitshell
二、建立Git用戶及所屬組安全
三、安裝Git客戶端並生成公鑰
四、建立證書登陸
五、服務器上初始化Git倉庫
六、使用Git Bash克隆服務器上的空倉庫
七、將本地庫項目推送到服務器
八、導入本地Git庫的項目到eclipse
------------------------------------------------------------------------------------------------------------------------------------------------------
安裝Git依賴
注:yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel是一次性安裝也能夠一個一個安裝
[root@localhost zhoujianxu]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
[root@localhost zhoujianxu]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.zju.edu.cn * updates: ftp.isu.edu.tw base | 3.7 kB 00:00 extras | 3.3 kB 00:00 updates | 3.4 kB 00:00 Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package expat-devel.i686 0:2.0.1-11.el6_2 will be installed ---> Package gettext-devel.i686 0:0.17-18.el6 will be installed --> Processing Dependency: gettext-libs = 0.17-18.el6 for package: gettext-devel-0.17-18.el6.i686 --> Processing Dependency: gettext = 0.17-18.el6 for package: gettext-devel-0.17-18.el6.i686 --> Processing Dependency: libgettextsrc-0.17.so for package: gettext-devel-0.17-18.el6.i686 --> Processing Dependency: libgettextpo.so.0 for package: gettext-devel-0.17-18.el6.i686 --> Processing Dependency: libgettextlib-0.17.so for package: gettext-devel-0.17-18.el6.i686 --> Processing Dependency: libgcj_bc.so.1 for package: gettext-devel-0.17-18.el6.i686 --> Processing Dependency: libasprintf.so.0 for package: gettext-devel-0.17-18.el6.i686 ---> Package libcurl-devel.i686 0:7.19.7-52.el6 will be installed --> Processing Dependency: libcurl = 7.19.7-52.el6 for package: libcurl-devel-7.19.7-52.el6.i686 --> Processing Dependency: libidn-devel for package: libcurl-devel-7.19.7-52.el6.i686 --> Processing Dependency: automake for package: libcurl-devel-7.19.7-52.el6.i686 ---> Package openssl-devel.i686 0:1.0.1e-48.el6_8.3 will be installed --> Processing Dependency: openssl = 1.0.1e-48.el6_8.3 for package: openssl-devel-1.0.1e-48.el6_8.3.i686 --> Processing Dependency: krb5-devel for package: openssl-devel-1.0.1e-48.el6_8.3.i686 ---> Package perl-devel.i686 4:5.10.1-141.el6_7.1 will be installed --> Processing Dependency: perl = 4:5.10.1-141.el6_7.1 for package: 4:perl-devel-5.10.1-141.el6_7.1.i686 --> Processing Dependency: perl(ExtUtils::ParseXS) for package: 4:perl-devel-5.10.1-141.el6_7.1.i686 --> Processing Dependency: perl(ExtUtils::MakeMaker) for package: 4:perl-devel-5.10.1-141.el6_7.1.i686 --> Processing Dependency: perl(ExtUtils::Installed) for package: 4:perl-devel-5.10.1-141.el6_7.1.i686 --> Processing Dependency: gdbm-devel for package: 4:perl-devel-5.10.1-141.el6_7.1.i686 --> Processing Dependency: db4-devel for package: 4:perl-devel-5.10.1-141.el6_7.1.i686 ---> Package zlib-devel.i686 0:1.2.3-29.el6 will be installed --> Running transaction check ---> Package automake.noarch 0:1.11.1-4.el6 will be installed --> Processing Dependency: autoconf >= 2.62 for package: automake-1.11.1-4.el6.noarch ---> Package db4-devel.i686 0:4.7.25-20.el6_7 will be installed --> Processing Dependency: db4-cxx = 4.7.25-20.el6_7 for package: db4-devel-4.7.25-20.el6_7.i686 --> Processing Dependency: db4 = 4.7.25-20.el6_7 for package: db4-devel-4.7.25-20.el6_7.i686 --> Processing Dependency: libdb_cxx-4.7.so for package: db4-devel-4.7.25-20.el6_7.i686 ---> Package gdbm-devel.i686 0:1.8.0-39.el6 will be installed --> Processing Dependency: gdbm = 1.8.0-39.el6 for package: gdbm-devel-1.8.0-39.el6.i686 ---> Package gettext.i686 0:0.17-18.el6 will be installed --> Processing Dependency: cvs for package: gettext-0.17-18.el6.i686 ---> Package gettext-libs.i686 0:0.17-18.el6 will be installed ---> Package krb5-devel.i686 0:1.10.3-57.el6 will be installed --> Processing Dependency: krb5-libs = 1.10.3-57.el6 for package: krb5-devel-1.10.3-57.el6.i686 --> Processing Dependency: libselinux-devel for package: krb5-devel-1.10.3-57.el6.i686 --> Processing Dependency: libcom_err-devel for package: krb5-devel-1.10.3-57.el6.i686 --> Processing Dependency: keyutils-libs-devel for package: krb5-devel-1.10.3-57.el6.i686 ---> Package libcurl.i686 0:7.19.7-35.el6 will be updated --> Processing Dependency: libcurl = 7.19.7-35.el6 for package: curl-7.19.7-35.el6.i686 ---> Package libcurl.i686 0:7.19.7-52.el6 will be an update ---> Package libgcj.i686 0:4.4.7-17.el6 will be installed ---> Package libidn-devel.i686 0:1.18-2.el6 will be installed ---> Package openssl.i686 0:1.0.0-27.el6 will be updated ---> Package openssl.i686 0:1.0.1e-48.el6_8.3 will be an update ---> Package perl.i686 4:5.10.1-129.el6 will be updated --> Processing Dependency: perl = 4:5.10.1-129.el6 for package: 1:perl-Pod-Simple-3.13-129.el6.i686 --> Processing Dependency: perl = 4:5.10.1-129.el6 for package: 3:perl-version-0.77-129.el6.i686 --> Processing Dependency: perl = 4:5.10.1-129.el6 for package: 4:perl-libs-5.10.1-129.el6.i686 --> Processing Dependency: perl = 4:5.10.1-129.el6 for package: 1:perl-Module-Pluggable-3.90-129.el6.i686 --> Processing Dependency: perl = 4:5.10.1-129.el6 for package: 1:perl-Pod-Escapes-1.04-129.el6.i686 ---> Package perl.i686 4:5.10.1-141.el6_7.1 will be an update ---> Package perl-ExtUtils-MakeMaker.i686 0:6.55-141.el6_7.1 will be installed --> Processing Dependency: perl(Test::Harness) for package: perl-ExtUtils-MakeMaker-6.55-141.el6_7.1.i686 ---> Package perl-ExtUtils-ParseXS.i686 1:2.2003.0-141.el6_7.1 will be installed --> Running transaction check ---> Package autoconf.noarch 0:2.63-5.1.el6 will be installed ---> Package curl.i686 0:7.19.7-35.el6 will be updated ---> Package curl.i686 0:7.19.7-52.el6 will be an update ---> Package cvs.i686 0:1.11.23-16.el6 will be installed ---> Package db4.i686 0:4.7.25-17.el6 will be updated --> Processing Dependency: db4 = 4.7.25-17.el6 for package: db4-utils-4.7.25-17.el6.i686 ---> Package db4.i686 0:4.7.25-20.el6_7 will be an update ---> Package db4-cxx.i686 0:4.7.25-20.el6_7 will be installed ---> Package gdbm.i686 0:1.8.0-36.el6 will be updated ---> Package gdbm.i686 0:1.8.0-39.el6 will be an update ---> Package keyutils-libs-devel.i686 0:1.4-5.el6 will be installed --> Processing Dependency: keyutils-libs = 1.4-5.el6 for package: keyutils-libs-devel-1.4-5.el6.i686 ---> Package krb5-libs.i686 0:1.10.3-10.el6 will be updated ---> Package krb5-libs.i686 0:1.10.3-57.el6 will be an update ---> Package libcom_err-devel.i686 0:1.41.12-22.el6 will be installed --> Processing Dependency: libcom_err = 1.41.12-22.el6 for package: libcom_err-devel-1.41.12-22.el6.i686 ---> Package libselinux-devel.i686 0:2.0.94-7.el6 will be installed --> Processing Dependency: libselinux = 2.0.94-7.el6 for package: libselinux-devel-2.0.94-7.el6.i686 --> Processing Dependency: libsepol-devel >= 2.0.32-1 for package: libselinux-devel-2.0.94-7.el6.i686 --> Processing Dependency: pkgconfig(libsepol) for package: libselinux-devel-2.0.94-7.el6.i686 ---> Package perl-Module-Pluggable.i686 1:3.90-129.el6 will be updated ---> Package perl-Module-Pluggable.i686 1:3.90-141.el6_7.1 will be an update ---> Package perl-Pod-Escapes.i686 1:1.04-129.el6 will be updated ---> Package perl-Pod-Escapes.i686 1:1.04-141.el6_7.1 will be an update ---> Package perl-Pod-Simple.i686 1:3.13-129.el6 will be updated ---> Package perl-Pod-Simple.i686 1:3.13-141.el6_7.1 will be an update ---> Package perl-Test-Harness.i686 0:3.17-141.el6_7.1 will be installed ---> Package perl-libs.i686 4:5.10.1-129.el6 will be updated ---> Package perl-libs.i686 4:5.10.1-141.el6_7.1 will be an update ---> Package perl-version.i686 3:0.77-129.el6 will be updated ---> Package perl-version.i686 3:0.77-141.el6_7.1 will be an update --> Running transaction check ---> Package db4-utils.i686 0:4.7.25-17.el6 will be updated ---> Package db4-utils.i686 0:4.7.25-20.el6_7 will be an update ---> Package keyutils-libs.i686 0:1.4-4.el6 will be updated ---> Package keyutils-libs.i686 0:1.4-5.el6 will be an update ---> Package libcom_err.i686 0:1.41.12-14.el6 will be updated --> Processing Dependency: libcom_err = 1.41.12-14.el6 for package: libss-1.41.12-14.el6.i686 --> Processing Dependency: libcom_err = 1.41.12-14.el6 for package: e2fsprogs-libs-1.41.12-14.el6.i686 --> Processing Dependency: libcom_err = 1.41.12-14.el6 for package: e2fsprogs-1.41.12-14.el6.i686 ---> Package libcom_err.i686 0:1.41.12-22.el6 will be an update ---> Package libselinux.i686 0:2.0.94-5.3.el6 will be updated --> Processing Dependency: libselinux = 2.0.94-5.3.el6 for package: libselinux-utils-2.0.94-5.3.el6.i686 --> Processing Dependency: libselinux = 2.0.94-5.3.el6 for package: libselinux-python-2.0.94-5.3.el6.i686 ---> Package libselinux.i686 0:2.0.94-7.el6 will be an update ---> Package libsepol-devel.i686 0:2.0.41-4.el6 will be installed --> Running transaction check ---> Package e2fsprogs.i686 0:1.41.12-14.el6 will be updated ---> Package e2fsprogs.i686 0:1.41.12-22.el6 will be an update ---> Package e2fsprogs-libs.i686 0:1.41.12-14.el6 will be updated ---> Package e2fsprogs-libs.i686 0:1.41.12-22.el6 will be an update ---> Package libselinux-python.i686 0:2.0.94-5.3.el6 will be updated ---> Package libselinux-python.i686 0:2.0.94-7.el6 will be an update ---> Package libselinux-utils.i686 0:2.0.94-5.3.el6 will be updated ---> Package libselinux-utils.i686 0:2.0.94-7.el6 will be an update ---> Package libss.i686 0:1.41.12-14.el6 will be updated ---> Package libss.i686 0:1.41.12-22.el6 will be an update --> Finished Dependency Resolution Dependencies Resolved ======================================================================================== Package Arch Version Repository Size ======================================================================================== Installing: expat-devel i686 2.0.1-11.el6_2 base 121 k gettext-devel i686 0.17-18.el6 base 154 k libcurl-devel i686 7.19.7-52.el6 base 247 k openssl-devel i686 1.0.1e-48.el6_8.3 updates 1.2 M perl-devel i686 4:5.10.1-141.el6_7.1 base 424 k zlib-devel i686 1.2.3-29.el6 base 44 k Installing for dependencies: autoconf noarch 2.63-5.1.el6 base 781 k automake noarch 1.11.1-4.el6 base 550 k cvs i686 1.11.23-16.el6 base 699 k db4-cxx i686 4.7.25-20.el6_7 base 606 k db4-devel i686 4.7.25-20.el6_7 base 6.6 M gdbm-devel i686 1.8.0-39.el6 base 26 k gettext i686 0.17-18.el6 base 1.8 M gettext-libs i686 0.17-18.el6 base 110 k keyutils-libs-devel i686 1.4-5.el6 base 29 k krb5-devel i686 1.10.3-57.el6 base 503 k libcom_err-devel i686 1.41.12-22.el6 base 32 k libgcj i686 4.4.7-17.el6 base 17 M libidn-devel i686 1.18-2.el6 base 137 k libselinux-devel i686 2.0.94-7.el6 base 137 k libsepol-devel i686 2.0.41-4.el6 base 64 k perl-ExtUtils-MakeMaker i686 6.55-141.el6_7.1 base 294 k perl-ExtUtils-ParseXS i686 1:2.2003.0-141.el6_7.1 base 46 k perl-Test-Harness i686 3.17-141.el6_7.1 base 232 k Updating for dependencies: curl i686 7.19.7-52.el6 base 197 k db4 i686 4.7.25-20.el6_7 base 580 k db4-utils i686 4.7.25-20.el6_7 base 129 k e2fsprogs i686 1.41.12-22.el6 base 555 k e2fsprogs-libs i686 1.41.12-22.el6 base 128 k gdbm i686 1.8.0-39.el6 base 29 k keyutils-libs i686 1.4-5.el6 base 20 k krb5-libs i686 1.10.3-57.el6 base 778 k libcom_err i686 1.41.12-22.el6 base 37 k libcurl i686 7.19.7-52.el6 base 176 k libselinux i686 2.0.94-7.el6 base 109 k libselinux-python i686 2.0.94-7.el6 base 200 k libselinux-utils i686 2.0.94-7.el6 base 82 k libss i686 1.41.12-22.el6 base 42 k openssl i686 1.0.1e-48.el6_8.3 updates 1.5 M perl i686 4:5.10.1-141.el6_7.1 base 9.7 M perl-Module-Pluggable i686 1:3.90-141.el6_7.1 base 40 k perl-Pod-Escapes i686 1:1.04-141.el6_7.1 base 33 k perl-Pod-Simple i686 1:3.13-141.el6_7.1 base 213 k perl-libs i686 4:5.10.1-141.el6_7.1 base 594 k perl-version i686 3:0.77-141.el6_7.1 base 52 k Transaction Summary ======================================================================================== Install 24 Package(s) Upgrade 21 Package(s) Total download size: 47 M Is this ok [y/N]: y Downloading Packages: (1/45): autoconf-2.63-5.1.el6.noarch.rpm | 781 kB 00:01 (2/45): automake-1.11.1-4.el6.noarch.rpm | 550 kB 00:00 (3/45): curl-7.19.7-52.el6.i686.rpm | 197 kB 00:00 (4/45): cvs-1.11.23-16.el6.i686.rpm | 699 kB 00:01 (5/45): db4-4.7.25-20.el6_7.i686.rpm | 580 kB 00:00 (6/45): db4-cxx-4.7.25-20.el6_7.i686.rpm | 606 kB 00:00 (7/45): db4-devel-4.7.25-20.el6_7.i686.rpm | 6.6 MB 00:10 (8/45): db4-utils-4.7.25-20.el6_7.i686.rpm | 129 kB 00:00 (9/45): e2fsprogs-1.41.12-22.el6.i686.rpm | 555 kB 00:00 (10/45): e2fsprogs-libs-1.41.12-22.el6.i686.rpm | 128 kB 00:00 (11/45): expat-devel-2.0.1-11.el6_2.i686.rpm | 121 kB 00:00 (12/45): gdbm-1.8.0-39.el6.i686.rpm | 29 kB 00:00 (13/45): gdbm-devel-1.8.0-39.el6.i686.rpm | 26 kB 00:00 (14/45): gettext-0.17-18.el6.i686.rpm | 1.8 MB 00:02 (15/45): gettext-devel-0.17-18.el6.i686.rpm | 154 kB 00:00 (16/45): gettext-libs-0.17-18.el6.i686.rpm | 110 kB 00:00 (17/45): keyutils-libs-1.4-5.el6.i686.rpm | 20 kB 00:00 (18/45): keyutils-libs-devel-1.4-5.el6.i686.rpm | 29 kB 00:00 (19/45): krb5-devel-1.10.3-57.el6.i686.rpm | 503 kB 00:00 (20/45): krb5-libs-1.10.3-57.el6.i686.rpm | 778 kB 00:01 (21/45): libcom_err-1.41.12-22.el6.i686.rpm | 37 kB 00:00 (22/45): libcom_err-devel-1.41.12-22.el6.i686.rpm | 32 kB 00:00 (23/45): libcurl-7.19.7-52.el6.i686.rpm | 176 kB 00:00 (24/45): libcurl-devel-7.19.7-52.el6.i686.rpm | 247 kB 00:00 (25/45): libgcj-4.4.7-17.el6.i686.rpm | 17 MB 00:28 (26/45): libidn-devel-1.18-2.el6.i686.rpm | 137 kB 00:00 (27/45): libselinux-2.0.94-7.el6.i686.rpm | 109 kB 00:00 (28/45): libselinux-devel-2.0.94-7.el6.i686.rpm | 137 kB 00:00 (29/45): libselinux-python-2.0.94-7.el6.i686.rpm | 200 kB 00:00 (30/45): libselinux-utils-2.0.94-7.el6.i686.rpm | 82 kB 00:00 (31/45): libsepol-devel-2.0.41-4.el6.i686.rpm | 64 kB 00:00 (32/45): libss-1.41.12-22.el6.i686.rpm | 42 kB 00:00 (33/45): openssl-1.0.1e-48.el6_8.3.i686.rpm | 1.5 MB 01:17 (34/45): openssl-devel-1.0.1e-48.el6_8.3.i686.rpm | 1.2 MB 01:07 (35/45): perl-5.10.1-141.el6_7.1.i686.rpm | 9.7 MB 00:15 (36/45): perl-ExtUtils-MakeMaker-6.55-141.el6_7.1.i686.rpm | 294 kB 00:00 (37/45): perl-ExtUtils-ParseXS-2.2003.0-141.el6_7.1.i686.rpm | 46 kB 00:00 (38/45): perl-Module-Pluggable-3.90-141.el6_7.1.i686.rpm | 40 kB 00:00 (39/45): perl-Pod-Escapes-1.04-141.el6_7.1.i686.rpm | 33 kB 00:00 (40/45): perl-Pod-Simple-3.13-141.el6_7.1.i686.rpm | 213 kB 00:00 (41/45): perl-Test-Harness-3.17-141.el6_7.1.i686.rpm | 232 kB 00:00 (42/45): perl-devel-5.10.1-141.el6_7.1.i686.rpm | 424 kB 00:00 (43/45): perl-libs-5.10.1-141.el6_7.1.i686.rpm | 594 kB 00:00 (44/45): perl-version-0.77-141.el6_7.1.i686.rpm | 52 kB 00:00 (45/45): zlib-devel-1.2.3-29.el6.i686.rpm | 44 kB 00:00 ---------------------------------------------------------------------------------------- Total 218 kB/s | 47 MB 03:41 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Updating : libcom_err-1.41.12-22.el6.i686 1/66 Updating : libselinux-2.0.94-7.el6.i686 2/66 Updating : db4-4.7.25-20.el6_7.i686 3/66 Updating : keyutils-libs-1.4-5.el6.i686 4/66 Installing : keyutils-libs-devel-1.4-5.el6.i686 5/66 Installing : libcom_err-devel-1.41.12-22.el6.i686 6/66 Installing : libidn-devel-1.18-2.el6.i686 7/66 Installing : zlib-devel-1.2.3-29.el6.i686 8/66 Installing : libsepol-devel-2.0.41-4.el6.i686 9/66 Updating : krb5-libs-1.10.3-57.el6.i686 10/66 Updating : libcurl-7.19.7-52.el6.i686 11/66 Updating : gdbm-1.8.0-39.el6.i686 12/66 Installing : gdbm-devel-1.8.0-39.el6.i686 13/66 Installing : libselinux-devel-2.0.94-7.el6.i686 14/66 Updating : 1:perl-Pod-Escapes-1.04-141.el6_7.1.i686 15/66 Updating : 4:perl-libs-5.10.1-141.el6_7.1.i686 16/66 Updating : 1:perl-Module-Pluggable-3.90-141.el6_7.1.i686 17/66 Updating : 3:perl-version-0.77-141.el6_7.1.i686 18/66 Updating : 1:perl-Pod-Simple-3.13-141.el6_7.1.i686 19/66 Updating : 4:perl-5.10.1-141.el6_7.1.i686 20/66 Installing : autoconf-2.63-5.1.el6.noarch 21/66 Installing : automake-1.11.1-4.el6.noarch 22/66 Installing : cvs-1.11.23-16.el6.i686 23/66 Installing : gettext-0.17-18.el6.i686 24/66 Installing : krb5-devel-1.10.3-57.el6.i686 25/66 Updating : openssl-1.0.1e-48.el6_8.3.i686 26/66 Updating : e2fsprogs-libs-1.41.12-22.el6.i686 27/66 Updating : libss-1.41.12-22.el6.i686 28/66 Installing : db4-cxx-4.7.25-20.el6_7.i686 29/66 Installing : db4-devel-4.7.25-20.el6_7.i686 30/66 Installing : perl-Test-Harness-3.17-141.el6_7.1.i686 31/66 Installing : perl-ExtUtils-MakeMaker-6.55-141.el6_7.1.i686 32/66 Installing : 4:perl-devel-5.10.1-141.el6_7.1.i686 33/66 Installing : 1:perl-ExtUtils-ParseXS-2.2003.0-141.el6_7.1.i686 34/66 Installing : libgcj-4.4.7-17.el6.i686 35/66 Installing : gettext-libs-0.17-18.el6.i686 36/66 Installing : openssl-devel-1.0.1e-48.el6_8.3.i686 37/66 Installing : libcurl-devel-7.19.7-52.el6.i686 38/66 Installing : expat-devel-2.0.1-11.el6_2.i686 39/66 Installing : gettext-devel-0.17-18.el6.i686 40/66 Updating : e2fsprogs-1.41.12-22.el6.i686 41/66 Updating : curl-7.19.7-52.el6.i686 42/66 Updating : db4-utils-4.7.25-20.el6_7.i686 43/66 Updating : libselinux-python-2.0.94-7.el6.i686 44/66 Updating : libselinux-utils-2.0.94-7.el6.i686 45/66 Cleanup : e2fsprogs-1.41.12-14.el6.i686 46/66 Cleanup : 1:perl-Pod-Escapes-1.04-129.el6.i686 47/66 Cleanup : 1:perl-Module-Pluggable-3.90-129.el6.i686 48/66 Cleanup : 3:perl-version-0.77-129.el6.i686 49/66 Cleanup : 4:perl-libs-5.10.1-129.el6.i686 50/66 Cleanup : 4:perl-5.10.1-129.el6.i686 51/66 Cleanup : 1:perl-Pod-Simple-3.13-129.el6.i686 52/66 Cleanup : curl-7.19.7-35.el6.i686 53/66 Cleanup : libcurl-7.19.7-35.el6.i686 54/66 Cleanup : openssl-1.0.0-27.el6.i686 55/66 Cleanup : krb5-libs-1.10.3-10.el6.i686 56/66 Cleanup : e2fsprogs-libs-1.41.12-14.el6.i686 57/66 Cleanup : libss-1.41.12-14.el6.i686 58/66 Cleanup : libselinux-utils-2.0.94-5.3.el6.i686 59/66 Cleanup : libselinux-python-2.0.94-5.3.el6.i686 60/66 Cleanup : db4-utils-4.7.25-17.el6.i686 61/66 Cleanup : db4-4.7.25-17.el6.i686 62/66 Cleanup : libselinux-2.0.94-5.3.el6.i686 63/66 Cleanup : libcom_err-1.41.12-14.el6.i686 64/66 Cleanup : keyutils-libs-1.4-4.el6.i686 65/66 Cleanup : gdbm-1.8.0-36.el6.i686 66/66 Verifying : cvs-1.11.23-16.el6.i686 1/66 Verifying : 1:perl-ExtUtils-ParseXS-2.2003.0-141.el6_7.1.i686 2/66 Verifying : gettext-0.17-18.el6.i686 3/66 Verifying : curl-7.19.7-52.el6.i686 4/66 Verifying : keyutils-libs-devel-1.4-5.el6.i686 5/66 Verifying : openssl-devel-1.0.1e-48.el6_8.3.i686 6/66 Verifying : keyutils-libs-1.4-5.el6.i686 7/66 Verifying : 1:perl-Pod-Simple-3.13-141.el6_7.1.i686 8/66 Verifying : 4:perl-libs-5.10.1-141.el6_7.1.i686 9/66 Verifying : libcom_err-1.41.12-22.el6.i686 10/66 Verifying : db4-devel-4.7.25-20.el6_7.i686 11/66 Verifying : automake-1.11.1-4.el6.noarch 12/66 Verifying : libsepol-devel-2.0.41-4.el6.i686 13/66 Verifying : libselinux-2.0.94-7.el6.i686 14/66 Verifying : gdbm-devel-1.8.0-39.el6.i686 15/66 Verifying : libcom_err-devel-1.41.12-22.el6.i686 16/66 Verifying : gdbm-1.8.0-39.el6.i686 17/66 Verifying : 4:perl-devel-5.10.1-141.el6_7.1.i686 18/66 Verifying : 1:perl-Module-Pluggable-3.90-141.el6_7.1.i686 19/66 Verifying : db4-utils-4.7.25-20.el6_7.i686 20/66 Verifying : zlib-devel-1.2.3-29.el6.i686 21/66 Verifying : libselinux-python-2.0.94-7.el6.i686 22/66 Verifying : gettext-libs-0.17-18.el6.i686 23/66 Verifying : 4:perl-5.10.1-141.el6_7.1.i686 24/66 Verifying : autoconf-2.63-5.1.el6.noarch 25/66 Verifying : e2fsprogs-1.41.12-22.el6.i686 26/66 Verifying : libidn-devel-1.18-2.el6.i686 27/66 Verifying : libselinux-devel-2.0.94-7.el6.i686 28/66 Verifying : libselinux-utils-2.0.94-7.el6.i686 29/66 Verifying : libgcj-4.4.7-17.el6.i686 30/66 Verifying : perl-Test-Harness-3.17-141.el6_7.1.i686 31/66 Verifying : e2fsprogs-libs-1.41.12-22.el6.i686 32/66 Verifying : db4-cxx-4.7.25-20.el6_7.i686 33/66 Verifying : perl-ExtUtils-MakeMaker-6.55-141.el6_7.1.i686 34/66 Verifying : krb5-libs-1.10.3-57.el6.i686 35/66 Verifying : krb5-devel-1.10.3-57.el6.i686 36/66 Verifying : gettext-devel-0.17-18.el6.i686 37/66 Verifying : libss-1.41.12-22.el6.i686 38/66 Verifying : libcurl-devel-7.19.7-52.el6.i686 39/66 Verifying : openssl-1.0.1e-48.el6_8.3.i686 40/66 Verifying : db4-4.7.25-20.el6_7.i686 41/66 Verifying : libcurl-7.19.7-52.el6.i686 42/66 Verifying : expat-devel-2.0.1-11.el6_2.i686 43/66 Verifying : 1:perl-Pod-Escapes-1.04-141.el6_7.1.i686 44/66 Verifying : 3:perl-version-0.77-141.el6_7.1.i686 45/66 Verifying : 3:perl-version-0.77-129.el6.i686 46/66 Verifying : gdbm-1.8.0-36.el6.i686 47/66 Verifying : openssl-1.0.0-27.el6.i686 48/66 Verifying : e2fsprogs-1.41.12-14.el6.i686 49/66 Verifying : db4-utils-4.7.25-17.el6.i686 50/66 Verifying : keyutils-libs-1.4-4.el6.i686 51/66 Verifying : 4:perl-libs-5.10.1-129.el6.i686 52/66 Verifying : libss-1.41.12-14.el6.i686 53/66 Verifying : libselinux-2.0.94-5.3.el6.i686 54/66 Verifying : e2fsprogs-libs-1.41.12-14.el6.i686 55/66 Verifying : curl-7.19.7-35.el6.i686 56/66 Verifying : 1:perl-Pod-Escapes-1.04-129.el6.i686 57/66 Verifying : libselinux-utils-2.0.94-5.3.el6.i686 58/66 Verifying : libselinux-python-2.0.94-5.3.el6.i686 59/66 Verifying : libcom_err-1.41.12-14.el6.i686 60/66 Verifying : krb5-libs-1.10.3-10.el6.i686 61/66 Verifying : 1:perl-Module-Pluggable-3.90-129.el6.i686 62/66 Verifying : db4-4.7.25-17.el6.i686 63/66 Verifying : libcurl-7.19.7-35.el6.i686 64/66 Verifying : 4:perl-5.10.1-129.el6.i686 65/66 Verifying : 1:perl-Pod-Simple-3.13-129.el6.i686 66/66 Installed: expat-devel.i686 0:2.0.1-11.el6_2 gettext-devel.i686 0:0.17-18.el6 libcurl-devel.i686 0:7.19.7-52.el6 openssl-devel.i686 0:1.0.1e-48.el6_8.3 perl-devel.i686 4:5.10.1-141.el6_7.1 zlib-devel.i686 0:1.2.3-29.el6 Dependency Installed: autoconf.noarch 0:2.63-5.1.el6 automake.noarch 0:1.11.1-4.el6 cvs.i686 0:1.11.23-16.el6 db4-cxx.i686 0:4.7.25-20.el6_7 db4-devel.i686 0:4.7.25-20.el6_7 gdbm-devel.i686 0:1.8.0-39.el6 gettext.i686 0:0.17-18.el6 gettext-libs.i686 0:0.17-18.el6 keyutils-libs-devel.i686 0:1.4-5.el6 krb5-devel.i686 0:1.10.3-57.el6 libcom_err-devel.i686 0:1.41.12-22.el6 libgcj.i686 0:4.4.7-17.el6 libidn-devel.i686 0:1.18-2.el6 libselinux-devel.i686 0:2.0.94-7.el6 libsepol-devel.i686 0:2.0.41-4.el6 perl-ExtUtils-MakeMaker.i686 0:6.55-141.el6_7.1 perl-ExtUtils-ParseXS.i686 1:2.2003.0-141.el6_7.1 perl-Test-Harness.i686 0:3.17-141.el6_7.1 Dependency Updated: curl.i686 0:7.19.7-52.el6 db4.i686 0:4.7.25-20.el6_7 db4-utils.i686 0:4.7.25-20.el6_7 e2fsprogs.i686 0:1.41.12-22.el6 e2fsprogs-libs.i686 0:1.41.12-22.el6 gdbm.i686 0:1.8.0-39.el6 keyutils-libs.i686 0:1.4-5.el6 krb5-libs.i686 0:1.10.3-57.el6 libcom_err.i686 0:1.41.12-22.el6 libcurl.i686 0:7.19.7-52.el6 libselinux.i686 0:2.0.94-7.el6 libselinux-python.i686 0:2.0.94-7.el6 libselinux-utils.i686 0:2.0.94-7.el6 libss.i686 0:1.41.12-22.el6 openssl.i686 0:1.0.1e-48.el6_8.3 perl.i686 4:5.10.1-141.el6_7.1 perl-Module-Pluggable.i686 1:3.90-141.el6_7.1 perl-Pod-Escapes.i686 1:1.04-141.el6_7.1 perl-Pod-Simple.i686 1:3.13-141.el6_7.1 perl-libs.i686 4:5.10.1-141.el6_7.1 perl-version.i686 3:0.77-141.el6_7.1 Complete! [root@localhost zhoujianxu]#
安裝Git
若是不知道你要安裝包的具體名稱,可使用yum provides */name 進行查找系統自帶軟件包的信息(這一步不是必須);
[root@localhost zhoujianxu]# yum provides */git
[root@localhost zhoujianxu]# yum provides */git
Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile * base: mirror.bit.edu.cn * extras: ftp.sjtu.edu.cn * updates: ftp.ksu.edu.tw git-1.7.1-4.el6_7.1.i686 : Fast Version Control System Repo : base Matched from: Filename : /etc/bash_completion.d/git Filename : /usr/libexec/git-core/git Filename : /usr/bin/git gitweb-1.7.1-4.el6_7.1.noarch : Simple web interface to git repositories Repo : base Matched from: Filename : /var/www/git git-daemon-1.7.1-4.el6_7.1.i686 : Git protocol dæmon Repo : base Matched from: Filename : /var/lib/git Filename : /etc/xinetd.d/git emacs-git-1.7.1-4.el6_7.1.noarch : Git version control system support for Emacs Repo : base Matched from: Filename : /usr/share/emacs/site-lisp/git [root@localhost zhoujianxu]#
安裝git 執行命令 yum install -y git (-y表示安裝過程當中不須要手動確承認以不加那麼安裝過程當中須要輸入y手動回車確認)
[root@localhost zhoujianxu]# yum install -y git
Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile * base: mirror.bit.edu.cn * extras: ftp.sjtu.edu.cn * updates: ftp.ksu.edu.tw Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package git.i686 0:1.7.1-4.el6_7.1 will be installed --> Processing Dependency: perl-Git = 1.7.1-4.el6_7.1 for package: git-1.7.1-4.el6_7.1.i686 --> Processing Dependency: perl(Git) for package: git-1.7.1-4.el6_7.1.i686 --> Processing Dependency: perl(Error) for package: git-1.7.1-4.el6_7.1.i686 --> Processing Dependency: libssl.so.10(libssl.so.10) for package: git-1.7.1-4.el6_7.1.i686 --> Processing Dependency: libcrypto.so.10(libcrypto.so.10) for package: git-1.7.1-4.el6_7.1.i686 --> Running transaction check ---> Package openssl.i686 0:1.0.0-27.el6 will be updated ---> Package openssl.i686 0:1.0.1e-48.el6_8.3 will be an update ---> Package perl-Error.noarch 1:0.17015-4.el6 will be installed ---> Package perl-Git.noarch 0:1.7.1-4.el6_7.1 will be installed --> Finished Dependency Resolution Dependencies Resolved ======================================================================================== Package Arch Version Repository Size ======================================================================================== Installing: git i686 1.7.1-4.el6_7.1 base 4.5 M Installing for dependencies: perl-Error noarch 1:0.17015-4.el6 base 29 k perl-Git noarch 1.7.1-4.el6_7.1 base 28 k Updating for dependencies: openssl i686 1.0.1e-48.el6_8.3 updates 1.5 M Transaction Summary ======================================================================================== Install 3 Package(s) Upgrade 1 Package(s) Total download size: 6.1 M Downloading Packages: (1/4): git-1.7.1-4.el6_7.1.i686.rpm | 4.5 MB 00:16 (2/4): openssl-1.0.1e-48.el6_8.3.i686.rpm | 1.5 MB 01:29 (3/4): perl-Error-0.17015-4.el6.noarch.rpm | 29 kB 00:00 (4/4): perl-Git-1.7.1-4.el6_7.1.noarch.rpm | 28 kB 00:00 ---------------------------------------------------------------------------------------- Total 51 kB/s | 6.1 MB 02:01 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : 1:perl-Error-0.17015-4.el6.noarch 1/5 Updating : openssl-1.0.1e-48.el6_8.3.i686 2/5 Installing : git-1.7.1-4.el6_7.1.i686 3/5 Installing : perl-Git-1.7.1-4.el6_7.1.noarch 4/5 Cleanup : openssl-1.0.0-27.el6.i686 5/5 Verifying : perl-Git-1.7.1-4.el6_7.1.noarch 1/5 Verifying : 1:perl-Error-0.17015-4.el6.noarch 2/5 Verifying : openssl-1.0.1e-48.el6_8.3.i686 3/5 Verifying : git-1.7.1-4.el6_7.1.i686 4/5 Verifying : openssl-1.0.0-27.el6.i686 5/5 Installed: git.i686 0:1.7.1-4.el6_7.1 Dependency Installed: perl-Error.noarch 1:0.17015-4.el6 perl-Git.noarch 0:1.7.1-4.el6_7.1 Dependency Updated: openssl.i686 0:1.0.1e-48.el6_8.3 Complete! [root@localhost zhoujianxu]#
完成;
建立用戶組
[root@localhost zhoujianxu]# groupadd java_team
建立用戶並yingyue添加到名爲」java_team「的組中
[root@localhost zhoujianxu]# adduser yingyue -g java_team
爲用戶名爲yingyue的用戶設置密碼
[root@localhost zhoujianxu]# passwd yingyue
Changing password for user git.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost zhoujianxu]#
建立第二個用戶xiaofei
[root@localhost zhoujianxu]# groupadd java_team
將xiaofei」java_team「的組中
[root@localhost zhoujianxu]# adduser xiaofei -g java_team
[root@localhost zhoujianxu]# passwd xiaofei
Changing password for user xiaofei.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost zhoujianxu]#
安裝Git客戶端(開發人員安裝)
下載地址https://git-scm.com/downloads 目前最新版本爲:Git-2.10.2-64-bit.exe
生成公鑰
方式一:圖形界面Git GUI方式
右鍵Git GUI here
點擊Help--》Generate Key生成SSHkey
以下
這時.ssh目錄下就有了公鑰(id_rsa.pub)和私鑰(id_rsa)
方式二:使用Git Bash經過ssh-keygen命令生成, ssh-keygen -t rsa 參數-t rsa 意思是以rsa的加密方式生成祕鑰對, 不是必須。
打開Git Bash進入.ssh目錄若是沒有能夠手動建
4.一、在用戶yingyue的.ssh目錄下建立authorized_keys文件
收集全部須要登陸的用戶的公鑰,公鑰位於id_rsa.pub文件中,把咱們的公鑰導入到/home/yingyue/.ssh/authorized_keys文件裏,一行一個。
若是沒有該文件建立它(.ssh爲隱藏文件夾可使用ls -la 或 ll 命令查看):
[root@localhost zhoujianxu]# cd /home/yingyue/
[root@localhost yingyue]# ls
[root@localhost yingyue]# mkdir .ssh
[root@localhost yingyue]# ls
[root@localhost yingyue]# ls -la
total 32
drwx------. 5 yingyue java_team 4096 Nov 12 22:48 .
drwxr-xr-x. 4 root root 4096 Nov 12 22:12 ..
-rw-r--r--. 1 yingyue java_team 18 Feb 21 2013 .bash_logout
-rw-r--r--. 1 yingyue java_team 176 Feb 21 2013 .bash_profile
-rw-r--r--. 1 yingyue java_team 124 Feb 21 2013 .bashrc
drwxr-xr-x. 2 yingyue java_team 4096 Nov 11 2010 .gnome2
drwxr-xr-x. 4 yingyue java_team 4096 Nov 12 19:25 .mozilla
drwxr-xr-x. 2 root root 4096 Nov 12 22:48 .ssh
[root@localhost yingyue]# chmod 700 .ssh
[root@localhost yingyue]# touch .ssh/authorized_keys
[root@localhost yingyue]# chmod 600 .ssh/authorized_keys
[root@localhost yingyue]#
注:chmod命令詳解
在linux系統中,咱們常常會經過chmod命令來更改文檔所屬的權限,格式爲:chmod abc file
其中a,b,c各爲一個數字,分別表示User、Group、及Other的權限。
在解釋上述命令以前,咱們先來了解一下unix系統家族中,對用戶權限的劃分在yingyue帳戶下新建一個文件,test.txt 而後咱們用ls -a 來查看
[root@localhost yingyue]# ls -la test.txt
drwxr-xr-x.2 root root 0 Nov 14 10:16 test.txt
能夠看到,以前有-rwxr-xr-x這樣一串字符。第一位爲文件類型,以後每三位在一塊兒分別表明用戶的權限(User)、組的權限(group)、其餘用戶的權限(Other)
其結構以下圖所示:
r=4,w=2,x=1
若要rwx屬性則4+2+1=7
若要rw-屬性則4+2=6
若要r-x屬性則4+1=5
以下圖:
chmod 600 .ssh/authorized_keys 表示只有所屬用戶對.ssh目錄下的authorized_keys具備讀寫權限沒有執行權限,Group和Other沒有權限。
-rw------- (600) -- 只有屬主有讀寫權限。
-rw-r--r-- (644) -- 只有屬主有讀寫權限;而屬組用戶和其餘用戶只有讀權限。
-rwx------ (700) -- 只有屬主有讀、寫、執行權限。
-rwxr-xr-x (755) -- 屬主有讀、寫、執行權限;而屬組用戶和其餘用戶只有讀、執行權限。
-rwx--x--x (711) -- 屬主有讀、寫、執行權限;而屬組用戶和其餘用戶只有執行權限。
-rw-rw-rw- (666) -- 全部用戶都有文件讀、寫權限。這種作法不可取。
-rwxrwxrwx (777) -- 全部用戶都有讀、寫、執行權限。更不可取的作法。
如下是對目錄的兩個普通設定:
drwx------ (700) - 只有屬主可在目錄中讀、寫。
drwxr-xr-x (755) - 全部用戶可讀該目錄,但只有屬主才能改變目錄中的內容。
Linux/Unix 的檔案調用權限分爲三級 : 檔案擁有者、羣組、其餘。利用 chmod 能夠藉以控制檔案如何被他人所調用。
4.二、將id_rsa_yingyue.pub 公鑰添加到authorized_keys文件中
收集全部須要登陸的用戶(即:開發人員 xiaofei,yingyue)的公鑰,把咱們的公鑰導入到/home/yingyue/.ssh/authorized_keys文件裏,一行一個。(注:公鑰能夠發給管理員管理員經過Xshell或文件傳輸工具傳到服務器經過 vi 或 cat 命令進行合併便可,cat控制檯查看 >> 或 tee 表示輸入到目標文件中)以下:
將yingyue的公鑰添加到authorized_key中:
[root@localhost yingyue]# cat /home/pubkeys/id_rsa_yingyue.pub >> .ssh/authorized_keys
將yingyue的公鑰添加到authorized_key中:
[root@localhost xiaofen]# cat /home/pubkeys/id_rsa_xiaofei.pub | tee .ssh/authorized_keys
首先選定一個目錄做爲Git倉庫假設是git_respository那麼個人想法是這樣的這這個文件夾下能夠建立多個git倉庫經過不一樣的命名來區分倉庫做用。
結構圖以下:
從上圖可知cms項目在cms_repo.git這個庫,路徑爲/home/git_repository/cms_repo.git,下面就在git_repository目錄下初始化一個空的倉庫cms_repo.git
[root@localhost yingyue]# cd /home
[root@localhost home]# mkdir git_repository
[root@localhost home]# ls
git_repository
[root@localhost home]# chown yingyue:java_team git_repository
[root@localhost home]# cd git_repository/
[root@localhost git_repository]# git init --bare cms_repo.git
Initialized empty Git repository in /home/git_repository/cms_repo.git/
[root@localhost git_repository]# ls
cms_repo.git
[root@localhost git_repository]#
chow 命令詳解:
chown將指定文件的擁有者改成指定的用戶或組(即:修改文件目錄屬主),用戶能夠是用戶名或者用戶ID;組能夠是組名或者組ID;文件是以空格分開的要改變權限的文件列表,支持通配符。系統管理員常用chown命令,在將文件拷貝到另外一個用戶的名錄下以後,讓用戶擁有使用該文件的權限。
1.命令格式:chown [選項]... [全部者][:[組]] 文件...
2.命令功能:
經過chown改變文件的擁有者和羣組。在更改文件的全部者或所屬羣組時,可使用用戶名稱和用戶識別碼設置。普通用戶不能將本身的文件改變成其餘的擁有者。其操做權限通常爲管理員。
以下圖:
chown yingyue:java_team git_repository 表示將git_repository目錄的權限更改成當前所屬用戶爲yingyue所屬組爲java_team,以下圖:
chown命令的參數-R表示向下遞歸改變目錄的所屬用戶和所屬組,chown -R yingyue:java_team cms_repo.git 表示將cms_repo.git目錄的權限向下遞歸更改成所屬用戶爲yingyue所屬組爲java_team。
[root@localhost git_repository]# chown -R yingyue:java_team cms_repo.git
[root@localhost git_repository]#
以下圖:
這一步很重要
給yingyue對git_repository目錄 可讀,可寫,可執行 的權限;對cms_repo.git目錄及子目錄 可讀,可寫,可執行的權限。(rwx用數字7表示)
給xiaofei對cms_repo.git目錄及子目錄 可讀,可寫,可執行的權限,xiaofei在java_team裏因此該組的權限便可。 ( rwx用數字7表示 )
給其餘用戶對cms_repo.git目錄及子目錄 可讀 的權限。 ( r - -用數字4表示 )
chmod 774 -R cms_repo.git
落下一步,將git_repository目錄權限改成 yingyue 擁有 可讀,可寫,可執行 權限;java_team組 擁有 可讀,可執行 權限;其餘用戶沒有權限;
chmod 750 git_repository
這時用戶名爲zhoujianxu的用戶對git_repository沒有任何權限了
倉庫地址:git@192.168.42.129:/home/git_repository/cms_repo.git
如今Git服務器上已經有了空倉庫cms_repo.git 那麼yingyue想把eclipse中的cms項目傳到倉庫中,步驟以下:
進入本地磁盤F盤右鍵Git Bash Here
格式git clone [user@]example.com:/*/*.git/
執行 git clone yingyue@192.168.42.129:/home/git_repository/cms_repo.git
倉庫已經克隆到yingyue的本地磁盤F
同時在本地磁盤的.ssh目錄下多了個文件known_hosts
這個文件是紀錄連到對方時,對方給的 host key。每次連線時都會檢查目前對方給的 host key 與紀錄的 host key 是否相同,能夠簡單驗證連結是否又被詐騙等相關事宜。
注:克隆版本庫的時候,所使用的遠程主機自動被Git命名爲origin。若是想用其餘的主機名,須要用git clone命令的-o選項指定(可使用git remote命令查看,添加,修改,刪除遠程主機)。
例如:
$ git clone -o jQuery https://github.com/jquery/jquery.git $ git remote jQuery
表示克隆的時候,指定遠程主機叫作jQuery
git clone支持多種協議,除了HTTP(s)之外,還支持SSH、Git、本地文件協議等,下面是一些例子。
$ git clone http[s]://example.com/*/*/*.git/ $ git clone ssh://example.com/*/*/*.git/ $ git clone git://example.com/*/*/*.git/ $ git clone /opt/git/project.git $ git clone file:///opt/git/project.git $ git clone ftp[s]://example.com/*/*/*.git/ $ git clone rsync://example.com/*/*/*.git/
ssh協議還有另外一種寫法
來試一下用戶zhoujianxu能夠克隆嗎?上面已經設置設置了對git_repository目錄的訪問權限,因此zhoujianxu是無法克隆的 以下圖;$ git clone [user@]example.com:*/*/*.git/
將eclipse中的cms項目複製到cms_repo目錄
進入cms_repo目錄並查看遠程主機名(默認爲origin)
可使用git remote rename
命令用於遠程主機的更名,格式爲:
$ git remote rename <原主機名> <新主機名>
不改了就用默認。
執行git add .把整個cms項目內文件的信息添加到索引庫中,使用git commit命令提交。(git將依據索引庫中的內容來進行文件的提交)
執行git push -u origin master命令將本地cms_repository庫的文件提交到遠程服務器
下一步
下一步
下一步
點擊Finish完後選中cms_repo點擊Next
下一步
點擊Finish完成,以下圖項目已經成功導入到eclipse中。
添加了新的文件須要提交,右鍵-->Team--Synchronize Workspace進行同步,相似svn的同步。
填寫用戶名密碼
下一步
雙擊IssueController.java查看變化的內容
由於添加了新文件索引要爲新文件添加索引選中項目右鍵-->Add to Index
看看圖標都變了
提交項目
下一步Git Staging(Git工做臺)
下一步
點擊OK將本地Git庫代碼推送到服務器以下圖是提交後的項目:
yingyue的eclipse導入cms項目完成;
-----------------------------------------------------------------------------------------------------------------------------------------------
注意:由於xiaofei是普通的開發人員而yingyue既是開發人員又是Linux系統管理員,因此xiaofei只須要將公鑰給系統管理員而後系統管理員將xiaofei的公鑰放到/home/xiaofei/.ssh/authorized_keys便可
xiaofei選擇Clone URI從服務器上直接導入以下圖:
點擊Next填寫連接信息protocol選擇ssh協議端口默認22
點擊Next
選擇master分支後點擊Next
點擊Finish引入項目到eclipse
xiaofei添加了新代碼並提交
點擊OK
點擊OK後xiaofei完成了提交
這時yingyue就能夠看到xiaofei提交的代碼了
完成
————————————————————————————————————————————————————————————
error: insufficient permission for adding an object to repository database ./objects
說明遠程服務器的目錄權限還不夠
終極必殺技是使用
chmod 777 -R 庫地址
更改,例如:
chmod 777 -R ../cms_repo.git/
另外還要注意每一個人的Git版本要一致, eclipse的egit插件也要一致,不然會報奇奇怪怪的錯。
————————————————————————————————————————————————————————————
最最後一步禁用shell登陸:
出於安全考慮,建立的git用戶不容許登陸shell,這能夠經過編輯/etc/passwd
文件完成。找到相似下面的一行:
改成git:x:1001:1001:,,,:/home/禁止shell登陸的用戶名:/bin/bash
git:x:1001:1001:,,,:/home/禁止shell登陸的用戶名:/usr/bin/git-shell
以下, 設置xiaofei不可登陸遠程主機
vi /etc/passwd
:wq保存並退出,當xiaofei在登陸時 What do you think I am? A shell?
這樣,git
用戶能夠正常經過ssh使用git,但沒法登陸shell,由於咱們爲git
用戶指定的git-shell
每次一登陸就自動退出。不是更安全嗎?
————————————————————————————————————————————————————————————
2016年11月18日 12:32:25 補充
當xiaofei修改了代碼push到服務器上後,yingyue更新代碼後也修改了代碼這時yingyue提交,發現push失敗,提示objects目錄下有文件沒有寫入權限。
狀況與下面的這段場景類似:
最近給公司部署了 git 服務器(CentOS 6.3),因爲以前沒有配置 git server 的經驗,搞了半天才把配置搞定。這裏就不講配置的問題了。建立了帳戶、項目並設置 git 權限後,使用 a 帳號開始測試。一切正常,沒有問題。
次日上班,給同事建了個帳號 b(a,b 帳號同在 git 用戶組),出現問題了,pull 正常, push 失敗,提示 objects 目錄下有文件沒有寫入權限。
果斷 ssh 上服務器,把帳號 a 和 b 都放到 git 用戶組。繼續測試,仍是報錯。沒辦法,只好一路 cd 到 objects 下,ll,發現有些文件沒有對同組用戶開啓 w 權限。想了想,用「linux 建立文件默認權限」做爲關鍵詞 Google 了一下,看了幾篇文章,瞭解了 umask 命令。
解決辦法:
設置umask
/etc/profile和/etc/bashrc均可以用於設置用戶登陸系統時自動執行某些操做,他們的區別是/etc/profile只在用戶第一次登陸時被執行,而/etc/bashrc則在用戶每次登陸加載Bash Shell時都會被執行。
於是,若是是修改/etc/profile文件,將只對新建立的用戶生效;而若是是修改/etc/bashrc文件,則對全部用戶都生效。
以下:
[root@localhost cms_repo.git]# vi /etc/bashrc
改後
OK;