CentOS安裝Git實現多人同步開發


描  述

要開發一個”cms系統“,有2個人分別是:曉飛, 盈月。要求使用Git來進行版本控制。

項目信息

版本控制:Git

項目名稱:cms

開發人員:xiaofei,yingyue

------------------------------------------------------------------------------------------------------------------------------------------------------

概  要

1、服務器上安裝Git依賴及Git

2、創建Git用戶及所屬組

3、安裝Git客戶端並生成公鑰

4、創建證書登錄

5、服務器上初始化Git倉庫

6、使用Git Bash克隆服務器上的空倉庫

7、將本地庫項目推送到服務器

8、導入本地Git庫的項目到eclipse

------------------------------------------------------------------------------------------------------------------------------------------------------

1、服務器上安裝Git依賴及Git

安裝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]#

完成;

2、創建”用戶組“和”用戶“,用來運行git服務。

 創建用戶組

   [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 -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]#

3、安裝Git客戶端並生成公鑰:

安裝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、創建證書登錄

4.1、在用戶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.2、將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

5、服務器上初始化Git倉庫(即:在服務器上創建一個空的倉庫

首先選定一個目錄作為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沒有任何權限了

6、使用Git Bash克隆服務器上的空倉庫

倉庫地址: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協議還有另一種寫法
$ git clone [user@]example.com:*/*/*.git/

來試一下用戶zhoujianxu可以克隆嗎?上面已經設置設置了對git_repository目錄的訪問權限,所以zhoujianxu是沒法克隆的 如下圖;

7、將本地庫項目推送到服務器

 將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庫的文件提交到遠程服務器

8、導入本地Git庫的項目到eclipse

 

下一步

下一步

下一步

點擊Finish完后選中cms_repo點擊Next

下一步

點擊Finish完成,如下圖項目已經成功導入到eclipse中。

添加了新的文件需要提交,右鍵-->Team--Synchronize Workspace進行同步,類似svn的同步。

填寫用戶名密碼

下一步

雙擊IssueController.java查看變化的內容

因為添加了新文件索引要為新文件添加索引選中項目右鍵-->Add to Index

看看圖標都變了

提交項目

下一步Git Staging(Git工作台)

下一步

點擊OK將本地Git庫代碼推送到服務器如下圖是提交后的項目:

 

yingyue的eclipse導入cms項目完成;

-----------------------------------------------------------------------------------------------------------------------------------------------

下面xiaofei開始導入項目到eclipse(xiaofei使用的是Windows XP系統)

 注意:因為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;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM