1. 在linux下搭建Git伺服器
眾所周知,版本系統在開發環境中是必不可少的,但是我們可以把代碼免費的託管到GitHub上,如果我們不原意公開項目的源代碼,公司又不想付費使用,那麼我們可以自己搭建一台Git伺服器,可以用Gitosis來管理公鑰,還是比較方便的。
搭建環境:
伺服器 CentOS6.6 + git(version 1.8.3.1)
客戶端 Windows10 + git(version 2.11.1.windows.1)
1. 安裝Git相關軟體
Linux是伺服器端系統,Windows作為客戶端系統,分別安裝Git
安裝客戶端:
下載 Git for Windows,地址:https://git-for-windows.github.io/
安裝完之後,可以使用Git Bash作為命令行客戶端。
安裝Gitosis
出現下面的信息表示安裝成功了
2. 伺服器端創建git用戶來管理Git服務
3. 配置公鑰
在Windows上配置管理者,git伺服器需要一些管理者,通過上傳開發者機器的公鑰到伺服器,添加成為git伺服器的管理者,打開git命令行
4. 配置gitosis
使用git用戶並初始化gitosis
在Windows上機器上clone gitosis-admin到管理者主機
gitosis.conf: git伺服器配置文件
keydir: 存放客戶端公鑰
配置 gitosis.conf 文件
在Windows管理者機器上創建本地test倉庫,並上傳到git服務端
提交到遠程伺服器
服務端會自動創建test倉庫
5.添加其他git用戶開發者
由於公司開發團隊人數不斷增多,手動添加開發者私鑰到/home/git/.ssh/authorized_keys比較麻煩,通過上面的Windows機器的管理者統一收集其他開發者的私鑰id_rsa.pub文件,然後傳到伺服器上,配置好後,用戶即獲得項目許可權,可以從遠程倉庫拉取和推送項目,達到共同開發項目。
推送完成後,新加進來的開發者就可以進行項目的開發了,後續增加人員可以這樣添加進來,開發者直接把倉庫clone下來就可以了。
2. 設置git在linux上只需要輸入一次賬號密碼
在命令行輸入:
git config --global credential.helper store
之後在進行pull,push等操作時再次輸入一次密碼後就不需要再輸入了
3. Linux下git操作項目時保存賬號密碼
git 每次操作需要輸入用戶名/密碼驗證
在項目根目錄下找到 .git/config 文件進行修改
這樣操作開發當前項目,git操作不會提示再次輸入賬號密碼,當然還可以用其他方法
git config查看配置
4. linux git 需要創建用戶嗎
需要, 要用創建的賬號登陸
==
詳細步驟:
6.1 GitHub - 賬戶的創建和配置
GitHub 是最大的 Git 版本庫託管商,是成千上萬的開發者和項目能夠合作進行的中心。 大部分 Git 版本庫都託管在 GitHub,很多開源項目使用 GitHub 實現 Git 託管、問題追蹤、代碼審查以及其它事情。 所以,盡管這不是 Git 開源項目的直接部分,但如果想要專業地使用 Git,你將不可避免地與 GitHub 打交道,所以這依然是一個絕好的學習機會。
本章將討論如何高效地使用 GitHub。 我們將學習如何注冊和管理賬戶、創建和使用 Git 版本庫、向已有項目貢獻的通用流程以及如何接受別人向你自己項目的貢獻、GitHub 的編程介面和很多能夠讓這些操作更簡單的小提示。
如果你對如何使用 GitHub 託管自己的項目,或者與已經託管在 GitHub 上面的項目進行合作沒有興趣,可以直接跳到 Git 工具 這一章。
賬戶的創建和配置
你所需要做的第一件事是創建一個免費賬戶。 直接訪問 https://github.com,選擇一個未被佔用的用戶名,提供一個電子郵件地址和密碼,點擊寫著「Sign up for GitHub」的綠色大按鈕即可。
5. linux配置git的坑
一般來說設置git需要設置用戶名和郵箱、生成shh公玥、將公玥添加到gitee或github裡面。做完這幾步就行了。
但是,如果一個gitee(或github)賬號想在多個環境下使用git,還按照這樣做的話,只會使後添加的公玥生效。我把linux下生成的公玥添加到gitee上之後linux能正常使用git了,但是windows下又不能用了。
正確步驟:在linux下生成ssh公玥之後,復制之前的公玥(從gitee或github或本地C:\Users\lenovo.ssh\id_rsa.pub都可找到),再修改linux下的/root/.ssh/id_rsa.pub,將裡面的公玥替換成剛才復制的就行了。
6. linux如何配置git
做前端的在日常工作中少不了和git打交道,那麼新安裝git之後使用webstorm進行項目上傳時有時會出現只能創建項目無法上傳文件的錯誤,那麼這種錯誤是怎麼形成的呢,原來是我們沒喲成功配置git。按照下面的方式去做就可以解決這個問題。
首先確保自己已經安裝了git,打開終端,運行:
查看當前git版本,如果沒有安裝運行:
sudo npm install git -g
進行git的安裝。
運行如下命令對git用戶的用戶名和郵箱進行配置。
之後再進行上傳發現問題已經解決。
7. 如何在Linux環境下建立Git Server並設置用戶
我的演示環境是一個Amazon EC2的instance,安裝好了Ubuntu 16.04,並且已經安裝有git。
我們想達到的目的是這樣的:
建立一個名為/srv/git的文件夾,對於我們當前項目,會有一個相應的my_project.git文件夾,我們可以在本地使用git push origin master或者git pull origin master命令來推送或者取回相應的文件。
首先git是存在多種protocol的,我們使用的是ssh。所以在建立用戶的時候,我們需要建立相應的public key及private key,並且將public key添加到伺服器端.ssh/authorized_keys文件中(稍後會介紹如何操作)。
8. linux搭建git遠程倉庫
1. linux和windows端分別安裝git,其中linux中可以用yum安裝
[root@node0~]#yum install git
git的默認安裝路徑在/usr/libexec/git-core
[root@node0 git-core]#cd /usr/libexec/git-core
[root@node0 git-core]#git --version
git version 1.7.1
2.設置linux端git的用戶名和密碼
[root@node0 git-core]# groupadd git
[root@node0 git-core]# useradd wang -g git
[root@node0 git-core]# passwd wang
New password:
3.在伺服器端創建遠程倉庫
[root@node0 ~]# mkdir -p /mnt/gitrep/wjf
[root@node0 ~]# cd /mnt/gitrep/wjf/
[root@node0 wjf]# git init
Initialized empty Git repository in /mnt/gitrep/wjf/.git/
把倉庫所屬用戶改為wang(git的用戶名)
[root@node0 wjf]# chown -R wang:git .git/
註:chown將指定文件的擁有者改為指定的用戶或組 -R處理指定目錄以及其子目錄下的所有文件
4.在windows客戶端克隆倉庫
$ git clone [email protected]:/mnt/gitrep/wjf/.git
Cloning into 'wjf'...
The authenticity of host '192.168.111.60 (192.168.111.60)' can't be established.
RSA key fingerprint is SHA256:MgWCWF************************1m2tI.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.111.60' (RSA) to the list of known hosts.
[email protected]'s password:
第一次連接遠程倉庫,出現黑體部分,這是因為Git使用SSH連接,而SSH連接在第一次驗證GitHub伺服器的Key時,需要你確認GitHub的Key的指紋信息是否真的來自GitHub的伺服器,鍵入yes,然後輸入遠程倉庫的密碼就可以了。
5.實際中也通常通過設置公鑰的方式來連接遠程倉庫,這樣就不用每次連接都需要密碼了。
設置公鑰:
1.在windows客戶端的gitbash中生成用戶私鑰和公鑰
$ ssh-keygen -t rsa -C "[email protected]"
在c盤用戶路徑下的/.ssh文件夾下會生成私鑰id_rsa和公鑰id_rsa.pub
2.linux端
首先 Git伺服器打開RSA認證,即,修改/etc/ssh/sshd_config,將其中的以下三項打開
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
然後,將客戶端生成的公鑰給到伺服器端
即,將公鑰給到 home/wang(git的用戶名)/.ssh/authorized_keys
[root@node0 ~]# cd /home/wang
[root@node0 wang]# mkdir .ssh
[root@node0 wang]# chmod 777 .ssh
[root@node0 wang]# touch .ssh/authorized_keys
在windows客戶端的gitbash中 執行:
$ ssh [email protected] 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
然後在linux端:
[root@node0 wang]# chmod 600 .ssh/authorized_keys
[root@node0 wang]# chmod 700 .ssh
[root@node0 wang]# chown wang:git .ssh
[root@node0 wang]# chown wang:git .ssh/authorized_keys
至此,以後再連接遠程倉庫就不需要密碼了。
若仍需要密碼,可以查看ssh連接日誌/var/log/secure:
常見連接失敗原因:Authentication refused: bad ownership or modes for directory /home/wang/.ssh
這時需要檢查該目錄的所屬用戶和讀寫許可權等級是否符合要求。公鑰以及.ssh文件的許可權應該屬於git的用戶和用戶組,讀寫許可權等級.ssh 700,authorized_keys 600.
9. Linux下 保存 git賬號密碼
一、通過文件方式
1.在~/下, touch創建文件 .git-credentials, 用vim編輯此文件,輸入內容格式:
touch .git-credentials
vim .git-credentials
在裡面按「i」然後輸入: https://{username}:{password}@github.com
比如 https://account:[email protected]
git config --global credential.helper store
[credential]
helper = store
4.OK
二、通過緩存方式
要求:git版本需要>=1.7.10
git config --global credential.helper cache
git config --global credential.helper 'cache --timeout=3600'