本地Git和Github连接可以实现多人协作,对于一个项目组,可以使用本地的Git服务器来实现项目的管理
一、服务器端操作
1.git的安装
输入git命令,如果没有则需要进行安装
sudo apt-get install git
![fa758c1f5fef6631e2c4632d03e1ea0e.png](https://img-blog.csdnimg.cn/img_convert/fa758c1f5fef6631e2c4632d03e1ea0e.png)
2.在服务器创建git用户,用于git的管理
创建新用户
sudo adduser git
将git用户添加到sudoers
sudo gedit /etc/sudoers
![ce2366cedb5e034d016dfca63384ed15.png](https://img-blog.csdnimg.cn/img_convert/ce2366cedb5e034d016dfca63384ed15.png)
![dbdab4c41b1afd110afc4253c72910ea.png](https://img-blog.csdnimg.cn/img_convert/dbdab4c41b1afd110afc4253c72910ea.png)
创建用户如果只是将其添加到sudoers里面,仍然无法利用xfce4进行可视化远程控制,可以连接,可以认证,但是进入只会是黑屏然后自动断开连接,将映射写入xfce4的配置文件,不通过xfce4远程的忽略
sudo echo “xfce4-session” >~/.xsession
3.配置服务器ssh协议
git可以使用本地协议,HTTP协议,SSH协议以及git协议,在权衡使用便捷性及配置难易程度方面,这里采用SSH协议作为服务协议,可以有效的防止远程管理过程中的信息泄露问题,同时可以利用ssh的协议的scp远程安全拷贝命令实现客户端和服务器之间文件的高效传输:
scp /xxx/xxx/xxx.txt(当前文件位置) user@xxx.xxx.xxx.xxx:/xxx/xxx/xxx(目标路径)
一般Ubuntu默认安装openssh-client,但是没有安装openssh-server
sudo apt-get install openssh-server ssh
![ed12562837447e62815af844d13abca4.png](https://img-blog.csdnimg.cn/img_convert/ed12562837447e62815af844d13abca4.png)
启动ssh服务
sudo service ssh start
![5c139193e9e9a3f18c43400baa1a47df.png](https://img-blog.csdnimg.cn/img_convert/5c139193e9e9a3f18c43400baa1a47df.png)
生成ssh key,默认存储路径是home/user/.ssh
![6dc5325f5fad1dc283689027aab2260e.png](https://img-blog.csdnimg.cn/img_convert/6dc5325f5fad1dc283689027aab2260e.png)
使用authorized_keys方法来对用户进行认证,为系统用户的authorized_keys添加一些开发者ssh公钥,该公钥可以由工作组配置并发送过来,将这些ssh公钥写入.ssh/authorized_keys
![a9a5775d96e8ffd1e652403ad3ec4c41.png](https://img-blog.csdnimg.cn/img_convert/a9a5775d96e8ffd1e652403ad3ec4c41.png)
4.在服务器为开发者建立空仓库
在某个特定目录下建立git的专用文件目录,并在里面为特定的git建立文件夹并初始化,采用带有—bare选项的git init命令可以在初始化仓库的时候不创建工作目录。
·mkdir test.git
·cd test.git
·git init –bareyi
![4ffb35f34d622937814140617c343d29.png](https://img-blog.csdnimg.cn/img_convert/4ffb35f34d622937814140617c343d29.png)
一、本地电脑操作
1.git的安装和配置
Git的下载安装及配置:
HUST小菜鸡:Git的下载安装及配置zhuanlan.zhihu.com![e8d7f14aa835e00efe3b78760757f33d.png](https://img-blog.csdnimg.cn/img_convert/e8d7f14aa835e00efe3b78760757f33d.png)
Git Bash的简单使用教程:
HUST小菜鸡:Git Bash的简单使用教程zhuanlan.zhihu.com![e8d7f14aa835e00efe3b78760757f33d.png](https://img-blog.csdnimg.cn/img_convert/e8d7f14aa835e00efe3b78760757f33d.png)
可以使用git bash完成本地一些cmd命令以及git gui实现可视化的git操作
![9fcc499382a5d9298fbe6cd68ab84377.png](https://img-blog.csdnimg.cn/img_convert/9fcc499382a5d9298fbe6cd68ab84377.png)
2.生成本地ssh密钥
默认ssh生成路径为C:/user/xxx/.ssh/
![45fc6114d57a7da39d54df48821a2906.png](https://img-blog.csdnimg.cn/img_convert/45fc6114d57a7da39d54df48821a2906.png)
![363416ea34fb45454a7a32140156759f.png](https://img-blog.csdnimg.cn/img_convert/363416ea34fb45454a7a32140156759f.png)
![bae4f8bf9443e3ad3308d811307672da.png](https://img-blog.csdnimg.cn/img_convert/bae4f8bf9443e3ad3308d811307672da.png)
利用scp命令将公钥传到git服务器,便于写入authorized_keys
![aa0c8b3c6fb7aeb724411c66b8a69ed8.png](https://img-blog.csdnimg.cn/img_convert/aa0c8b3c6fb7aeb724411c66b8a69ed8.png)
3.初始化本地仓库并执行相关的命令:
$ cd myproject
$ git init
$ git add .
$ git commit -m 'initial commit'
$ git remote add origin git@gitserver:/srv/git/project.git
$ git push origin master
![65484e90ed33cbc363984f44fb03a117.png](https://img-blog.csdnimg.cn/img_convert/65484e90ed33cbc363984f44fb03a117.png)
![c46abf81f886008b6834140c5143c588.png](https://img-blog.csdnimg.cn/img_convert/c46abf81f886008b6834140c5143c588.png)
![e668a39097529a0e5df79fd09e2ffa57.png](https://img-blog.csdnimg.cn/img_convert/e668a39097529a0e5df79fd09e2ffa57.png)
4.测试
![4d380efd210510fbfaa8670270e12e7b.png](https://img-blog.csdnimg.cn/img_convert/4d380efd210510fbfaa8670270e12e7b.png)