git在linux下建立倉庫


1,linux下建立git倉庫

1.1、安裝Git

$ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel $ yum install git

接下來我們 創建一個git用戶組和用戶,用來運行git服務:
$ groupadd git
$ useradd git -g git

1.2、創建證書登錄

收集所有需要登錄的用戶的公鑰,公鑰位於id_rsa.pub文件中,把我們的公鑰導入到/home/git/.ssh/authorized_keys文件里,一行一個。

如果沒有該文件創建它:

$ cd /home/git/ $ mkdir .ssh $ chmod 755 .ssh $ touch .ssh/authorized_keys $ chmod 644 .ssh/authorized_keys

1.3、初始化Git倉庫

首先我們選定一個目錄作為Git倉庫,假定是/home/gitrepo/learngit.git,在/home/gitrepo目錄下輸入命令:

$ cd /home $ mkdir gitrepo $ chown git:git gitrepo/ $ cd gitrepo $ git init --bare learngit.git Initialized empty Git repository in /home/gitrepo/learngit.git/

以上命令Git創建一個空倉庫,服務器上的Git倉庫通常都以.git結尾。然后,把倉庫所屬用戶改為git:
$ chown -R git:git learngit.git

1.4、克隆倉庫

$ git clone git@192.168.1.101:/home/gitrepo/learngit.git Cloning into 'learngit'... warning: You appear to have cloned an empty repository. Checking connectivity... done.

可能會提示錯誤 如下信息:
$ git clone git@192.168.8.34:/data/git/learngit.git
Cloning into 'learngit'...
The authenticity of host '192.168.8.34 (192.168.8.34)' can't be established.
RSA key fingerprint is 2b:55:45:e7:4c:29:cc:05:33:78:03:bd:a8:cd:08:9d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.8.34' (RSA) to the list of known hosts.
git@192.168.8.34's password:

這里兩點需要注意:第一,當你第一次使用Git的clone或者push命令連接GitHub時,會得到一個警告:

The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)?

這是因為Git使用SSH連接,而SSH連接在第一次驗證GitHub服務器的Key時,需要你確認GitHub的Key的指紋信息是否真的來自GitHub的服務器,輸入yes回車即可。

Git會輸出一個警告,告訴你已經把GitHub的Key添加到本機的一個信任列表里了:

Warning: Permanently added 'github.com' (RSA) to the list of known hosts.

這個警告只會出現一次,后面的操作就不會有任何警告了。
如果你實在擔心有人冒充GitHub服務器,輸入yes前可以對照GitHub的RSA Key的指紋信息是否與SSH連接給出的一致。
第二,這里提示你輸入密碼才能clone,當然如果你知道密碼,可以鍵入密碼來進行clone,但是更為常見的方式,是利用SSH的公鑰來完成驗證。

1.5、創建SSH Key
首先在用戶主目錄下,看看有沒有.ssh目錄,如果有,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個文件,如果已經有了,可直接跳到下一步。如果沒有,打開Shell(Windows下打開Git Bash),創建SSH Key:

$ ssh-keygen -t rsa -C "youremail@example.com"  

你需要把郵件地址換成你自己的郵件地址,然后一路回車,使用默認值即可,由於這個Key也不是用於軍事目的,所以也無需設置密碼。

如果一切順利的話,可以在用戶主目錄里找到.ssh目錄,里面有id_rsa和id_rsa.pub兩個文件,這兩個就是SSH Key的秘鑰對,id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,可以放心地告訴任何人。

1.6、Git服務器打開RSA認證
然后就可以去Git服務器上添加你的公鑰用來驗證你的信息了。在Git服務器上首先需要將/etc/ssh/sshd_config中將RSA認證打開,即:

1.RSAAuthentication yes     
2.PubkeyAuthentication yes     
3.AuthorizedKeysFile  .ssh/authorized_keys

這里我們可以看到公鑰存放在.ssh/authorized_keys文件中。所以我們在/home/git下創建.ssh目錄,然后創建authorized_keys文件,並將剛生成的公鑰導入進去。

然后再次clone的時候,或者是之后push的時候,就不需要再輸入密碼了:

Zhu@XXX/E/testgit/8.34
$ git clone git@192.168.8.34:/data/git/learngit.git
Cloning into 'learngit'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.

1.7、禁用git用戶的shell登陸
出於安全考慮,第二步創建的git用戶不允許登錄shell,這可以通過編輯/etc/passwd文件完成。找到類似下面的一行:

git:x:1001:1001:,,,:/home/git:/bin/bash  

最后一個冒號后改為:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell  

這樣,git用戶可以正常通過ssh使用git,但無法登錄shell,因為我們為git用戶指定的git-shell每次一登錄就自動退出。

 

2,在windows系統中如何用git建立本地倉庫

         2.1首先,我們需要下載Git客戶端,一般是在官網上下載。

         2.2在要導出git的文件夾右鍵git bash,輸入git init這意味着初始化本地倉庫完成。

         2.3.git commit -m "first" # -m 后為提交日志

         2.4.git branch 可查看本地倉庫分支,發現會出現一個master的分支

         到目前為止,我們完成了代碼庫的初始化,但代碼是在本地,還沒有提交到遠程服務器,所以關鍵的來了,要提交到就遠程代碼服務器,進行以下兩步:

         2.5git remote add origin  git@192.168.1.101:/home/gitrepo/runoob.git (你的遠程庫地址)// 把本地庫與遠程庫關聯

         2.6 git push -u origin master // 第一次推送時

         2.7git push origin master // 第一次推送后,直接使用該命令即可推送修改

        把本地庫的內容推送到遠程。使用 git push命令,實際上是把當前分支master推送到遠程。執行此命令后會要求輸入用戶名、密碼,驗證通過后即開始上傳。 
        說明:用戶名密碼需要通過命令 ssh-keygen -t rsa -C “xxxxxx@qq.com”進行創建,並且要把得到的秘鑰(公鑰)文件放到git服務器上,這樣才有權限進行代碼推送

 


免責聲明!

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



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