服务器端安装与配置
1.安装ssh服务器
sudo apt-get install openssh-server
sudo service ssh start
2.安装git
sudo apt-get install git
3.创建git用户
sudo adduser scgdgit
- 禁用shell登录
sudo vi /etc/passwd
git:x:1001:1001:,,,:/home/git:/bin/bash
修改为
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
5.创建存放代码仓库的文件夹
sudo mkdir /home/git/repositories
#创建文件夹
sudo chown git:git /home/git/repositories
#修改文件拥有者
sudo chmod 755 /home/git/repositories
#修改文件权限
6.创建代码仓库
sudo git init --bare /home/git/repositories/sample.git
7.修改子项目权限
sudo chown -R git:git sample.git
8.创建authorized_keys文件并修改权限
sudo mkdir /home/git/.ssh
touch .ssh/authorized_keys
sudo chown -R git:git /home/git/.ssh
客户端操作
1.安装git <https://pc.qq.com/search.html#!keyword=git>
2.配置git用户信息
git config --global user.name "你的注册用户名"
git config --global user.emall "你的注册邮箱"
3.生成本机密钥
ssh-keygen -t rsa
#选择默认或输入保存路径
4.上传本机密钥至服务器端
ssh-copy-id -i ~/.ssh/id_rsa.pub remote@192.168.1.2
#服务器端一般已禁用git用户bash登录,所以ssh-copy-id命令会执行失败,可通过ftp等其他方式上传至git服务器并将公钥内容写入到authorized_keys文件中
多人协作
1.服务器端创建代码仓库并修改权限
2.任一客户端创建dev分支并同步到远程dev分支
client1克隆远程仓库到本地,
git clone git@github.com:someaccount/someproject.git
本地创建dev分支,
git checkout -b dev
推送本地dev分支到远程dev分支
git push origin dev:dev
至此,服务器与本地均有master和dev分支
3.client开始coding
克隆远程仓库到本地 git clone...
默认情况下克隆到本地的远程仓库只有master分支,要求必须在dev分支上进行开发,将远程dev分支check到本地git checkout -b dev origin/dev
client2此时处于dev分支,工作完成后仍旧推送到远程dev分支。
git add .
git commit -m''
git push origin dev
client3、client4...同理
tips
git reset --mixed
使用Add操作跟踪文件,如果是第一次Add,添加后想修改忽略规则,剔除其他不想要的文件,需要撤销所有跟踪,使用git reset --mixed
git rm --cached "文件路径"
可以从缓存区移除文件,使该文件变为未跟踪的状态
复制远程仓库到本地并于本地已有文件的文件夹合并
先将远程项目clone 到临时文件夹,将文件夹中的所有文件(包括.git隐藏文件)copy到本地已有文件的文件夹,在此文件夹下执行git reset --hard DEAD
,即将远程仓库克隆到本地,然后添加本地已有文件,即可提交,上传。
待续
...
参考链接
<https://www.liaoxuefeng.com/wiki/896043488029600>
<https://www.cnblogs.com/EasonJim/p/8326220.html>