这里我使用的是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 git@server:/srv/huang.git
这里的server是服务器IP
操作如下: 在本机电脑随意位置创建个空文件夹
这样远程git服务器就搭好了。
远程同步需要操作的命令:
git init
git remote add origin git@Server:/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