在Linux上搭建git伺服器
阿新 • • 發佈:2018-12-15
這裡我使用的是centos伺服器
1、安裝git yum -y install git
2、新新增使用者git adduser git
3、進入/etc/passwd將 git:x:1001:1001:,,,:/home/git:/bin/bash
改為 git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
以禁止git使用Shell登入伺服器
4、建立證書登入:收集所有需要登入的使用者的公鑰,就是他們自己的id_rsa.pub檔案,把所有公鑰匯入到/home/git/.ssh/authorized_keys檔案裡,一行一個
需要將自己電腦的這個公鑰上傳到centos伺服器的指定目錄下。
5
sudo git init --bare sample.git
6、因為伺服器只是為了共享,所以不讓使用者登入上去到工作區: sudo chown -R git:git huang.git
7、克隆遠端倉庫,格式為:git clone [email protected]:/srv/huang.git
這裡的server是伺服器IP
操作如下: 在本機電腦隨意位置建立個空資料夾
這樣遠端git伺服器就搭好了。
遠端同步需要操作的命令:
git init git remote add origin [email protected]:/usr/bon/huang.git cd huang/ touch HELLO.txt && echo "123" >> HELLO.txt ls cat HELLO.txt git add . git commit -m "first commit" git push -u origin master
提交完成。
總結使用git命令進行遠端同步出錯時的改正方法:
error: failed to push some refs to ‘xxxxxxx’ (這裡為遠端倉庫地址)
可以使用:git pull --rebase origin master
使用–rebase 引數的作用是,提交線圖有分叉的話,Git 會通過 rebase 策略來代替預設的 merge 策略
PS:儘量使用git pull, 不讓git clone的話,在push時候提交會出錯, 如果強制使用git push -f -u origin master命令,會將遠端倉庫的之前的commit清空,需要慎重操作。 另外,我們可以在平時使用git push之前先下載、再合併,然後push
git fetch origin master
git merge origin master
git push