簡單的git服務器搭建操作:
- 安裝git在服務器上
- 下載git客戶端在windos
服務器端操作:
- 查看要創建的用戶 id username
- 創建用戶: useradd username
- 設置用戶密碼:passwd username
服務器端創建倉庫然后把倉庫的owner修改為username
- 以/opt/git/gittest.git作為倉庫
- mkdir -p /opt/git
- git init --bare /opt/git/gittest.git
- cd /opt/git/
- chown -R account:group gittest.git/
客戶端clone 遠程倉庫
- 在客戶端目錄 D:\gittest\gittest_gitbash作為項目地址並進入
- git clone username@192.168.171.118:/opt/git/gittest.git 第一次的時候輸入yes即可
- 此時在C:\Users\用戶名\.ssh目錄下會出現known_hosts文件
客戶端創建ssh公鑰和私鑰
- ssh-keygen -t rsa -C "1114375070@qq.com"
- 連按三次enter(第一次是文件名,后兩次是提交代碼是需要輸入的密碼) 此時在 C:\Users\用戶名\.ssh 下會多出兩個文件 id_rsa 和 id_rsa.pub . id_rsa 是私鑰。id_rsa.pub 是公鑰
服務器git 打開RSA認證
- 進入/etc/ssh/sshd_config 編輯打開下面三個注釋沒有的添加進去 RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
保存退出
重啟sshd服務
systemctl restart sshd.service //(centos 7)
由 AuthorizedKeysFile 得知公鑰的存放路徑是 .ssh/authorized_keys,實際上是 $Home/.ssh/authorized_keys,由於管理 Git 服務的用戶是 git,所以實際存放公鑰的路徑是 /home/git/.ssh/authorized_keys
在 /home/git/ 下創建目錄 .ssh
然后把 .ssh 文件夾的 owner 修改為 git
chown -R git:git .ssh
2.將客戶端公鑰導入服務端/home/git/.ssh/authorized_keys 文件
回到git bash
ssh username@192.168.171.118 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
//ssh gitAdmin@192.168.171.118 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
需要輸入服務端username 的密碼
回到服務端查看.ssh下是否存在authorized_keys文件
重要:每新建一個賬號都需要新建一個.ssh文件夾
修改 .ssh 目錄的權限為 700
修改 .ssh/authorized_keys 文件的權限為 600
14:客戶端在此clone遠程倉庫
git clone username@192.168.171.118:/opt/git/gittest.git
15:
⑨ 禁止 git 用戶 ssh 登錄服務器
之前在服務器端創建的 git 用戶不允許 ssh 登錄服務器
編輯 /etc/passwd
找到:
git:x:502:504::/home/git:/bin/bash
修改為
git:x:502:504::/home/git:/bin/git-shell
此時 git 用戶可以正常通過 ssh 使用 git,但無法通過 ssh 登錄系統。
參考:https://www.cnblogs.com/dee0912/p/5815267.html
刪除賬號:userdel username
git clone git@ip:path/gittest.git
這個需要在開發者電腦生成公鑰,然后上傳到git服務器上,保存在authorized_keys中。
首先在客戶端設置用戶名和郵箱,這個不不是登錄用戶,可以看做是一個別稱,用來跟蹤代碼提交記錄的
git config --global user.name "yangyangwang"
git config --global user.email wang839305939@outlook.com
本文總結了Linux添加或者刪除用戶和用戶組時常用的一些命令和參數。
1、建用戶:
adduser phpq //新建phpq用戶
passwd phpq //給phpq用戶設置密碼
2、建工作組
groupadd test //新建test工作組
3、新建用戶同時增加工作組
useradd -g test phpq //新建phpq用戶並增加到test工作組
注::-g 所屬組 -d 家目錄 -s 所用的SHELL
管理員賬號
gitAdmin:111111
git clone gitAdmin@192.168.171.118:/opt/dw/slaveDev/slave.git
--------------------------------------------------------------------------------------------------------------------------------------------
安裝git,使用yum源在線安裝
yum install -y git
初始化git倉庫,在/home/data/git/路徑下初始化一個空的倉庫gittest
git init --bare /home/data/git/gittest.git
到這里Git服務器就搭好了,而且有一個空的git倉庫。下面的工作就是添加用戶,因為看到各位大牛添加用戶都是通過密鑰實現的,這樣可以免密使用,而我自己感覺生成密鑰這個過程可能對開發人員來說是一件麻煩事(雖然只有一句命令),而且開發人員較少,所以決定添加用戶名密碼,服務器端管理員直接管理即可。不說廢話了,接着往下看。
創建用戶組gitgroup
groupadd gitgroup
創建用戶qixiao
useradd qixiao
為用戶設置密碼
passwd qixiao
禁用git用戶的shell登錄,防止用戶通過Git用戶登錄服務器。編輯/etc/路徑下的passwd文件,將文件后邊的bash改成git-shell,即
將
qixiao:x:1003:1003::/home/qixiao:/bin/bash
改成
qixiao:x:1003:1003::/home/qixiao:/bin/git-shell
將用戶qixiao添加到用戶組gitgroup
usermod -G gitgroup qixiao
修改git倉庫所在目錄/home/data/git/的用戶組為gitgroup
chgrp -R gitgroup /home/data/git/
寫到這里,用戶組對/home/data/git/路徑只有讀的權限,沒有寫的權限。上邊的配置都沒有什么問題,就這個權限折騰了一天,用戶組默認的權限是沒有寫權限的,配置好不能上傳代碼,問題就在用戶組的權限。
修改目錄及其子文件的權限
chmod -R 777 /home/data/git/
usermod -G groupname username (這種會把用戶從其他組中去掉,只屬於該組)
如:usermod -G git git (git只屬於git組)
usermod -a -G groupname username (把用戶添加到這個組,之前所屬組不影響)
如:usermod -a -G www git (git屬於之前git組,也屬於www組)
git 分支合並
主干分支一般不用來開發,開發一般在其他分支上(這是前提)
當其他分支的功能開發完畢以后,就需要將此功能合並到主干分支上,
暫時摸索出來的門路如下:
1:首先切換到其他分支要合並到的分支上去
2: 使用git merge 分支名字(待合並的分支)(此時會看到fast-forward,具體啥意思自己搜)
3:等待合並完成將其他分支刪除git branch -d 其它分支名字
以上操作會保持主干的粗壯性和枝繁葉茂
