Github 公开的项目是免费的,可是若是你不想让其余人看到你的项目就须要收费。前端
这时咱们就须要本身搭建一台Git服务器做为私有仓库使用。linux
linux下搭建git服务器,其实网上的教程不少,都很详细,本人菜鸟,弄了大半天,仍是写个笔记。git
环境:debainangularjs
功能:在debain上搭建git服务器,windows上上传已有的git项目(此项目不是从服务器上克隆的,就经过工具和命令建立的)github
一.安装git服务器web
#更新 apt-get update #安装git(网上说是要安装依赖,我没有安装,也成功了,若是后期出现问题再加依赖吧!) apt-get install git #建立一个git用户,用来运行git服务,此用户建立后,在home下面会产生一个git文件 adduser git
2、受权客户端用户
#将客户端的公钥拷贝到/home/git/.ssh/authorized_keys下面 ,进入/home/git 查看是否有.ssh文件,这个文件是不可见的,因此不要用ls查看,直接cd .ssh,若是没有就没法进入 #没有.ssh的状况,手动建立 mkdir .ssh #建立authorized_keys文件 touch authorized_keys #这个文件里要存放的是全部客户端的公钥,一行一个,客户端产生公钥的办法是: #若是你没有Github帐号,须要在官网https://github.com/注册一个帐号。 #注册完了以后,开始->Git Bash,使用如下命令生成SSH Key: ssh-keygen -t rsa -C "youremail@example.com"
#后面的 your_email@youremail.com 改成你在 github 上注册的邮箱,以后会要求确认路径和输入密码(密码记住,一会上传项目须要),咱们这使用默认的一路回车就行。 #成功的话会在C:/用户/Administrator/下生成.ssh文件夹,进去,打开 id_rsa.pub,复制里面的 key(全选,前面的ssh-rsa不要漏了),到/home/git/.ssh/authorized_keys里面
3、建立项目库
git init --bare /home/git_repository/hello.git
4、受权hello.git仓库的全部者为git用户(很重要,不受权,上传项目的时候将致使权限不足,后面每一个项目都须要受权全部者,在客户端访问的时候只能用这个用户名访问)shell
chown -R git:git /home/git_repository/hello.git
5、禁用shell登陆vim
出于安全考虑,git用户不容许登陆shell,
vim /etc/passwd
找到相似下面的一行: git:x:1001:1001:,,,:/home/git:/bin/bash 改成: git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell 如此,git用户只能经过ssh使用git,却没法登陆shell。
6、客户端上传windows
我这里是webstorm的angularjs项目,只要是git项目结构均可以
查看远程仓库是否配置,若是配置了,下面会显示已经配置的远程仓库
git remote -v
#若是配置了远程仓库,先删除已配置的远程仓库,未配置的跳过此步骤
git remote rm origin
#配置刚才的服务器仓库(@前面的git是刚才执行的项目全部者的用户名,个人服务器ip是47.98.152.43,根据本身的ip进行修改)
git remote add origin git@47.98.152.43:/home/git_repository/hello.git
#上传(第一次须要加-u,后面每次直接git push就能够了)
git push -u orgin master
7、讲一下在webstorm中操做git的整个流程安全
1.服务器端安装完git后建立git仓库(上面有详细步骤)
2.须要使用这个仓库的同志都把本身的钥匙发个服务器端的同志,将其添加到git/.ssh/authorized_keys文件下 (上面有详细步骤)
3.前端的同志建立一个anglar / ionic的项目 ,以ionic为例 : ionic start 项目名 blank
4.建立完成以后,执行一下几条命令将项目发送到服务端的仓库做为第一个版本,也就是创始人,暂且叫作A用户
git init (若是不是git项目,将其转化成git项目;若是式,不须要执行此命令) git add . (将项目目前的文件都添加的能够提交的区域,必需要执行此步骤,并且注意 . 前面有空格) git remote add origin git@47.98.152.44:/home/git_repository/verify.git (添加远程仓库,在这以前确认该项目有没有远程仓库,若是有,就先删除,上面有详细操做) git push -u origin master (第一次提交,必须执行此命令)
5.A用户将项目提交到了仓库,B和C...用户就能够经过克隆将这么项目下载到本地
git clone git@47.98.152.44:/home/git_repository/verify.git
6.克隆到本地后,就是后面的提交到服务器仓库、更新到本地的问题啦,先看,提交到服务器仓库(克隆的项目,默认远程仓库的地址就是克隆的地址,因此不须要再次配置远程仓库的地址啦!查看远程仓库的地址,除了用命令,也能够 项目右键-> Git -> Repository -> Remotes )
记住,这里必定要选择Commit andPush,不然代码不会更新到服务器仓库,只是你本地仓库更新了而已。
7.将最新的代码更新到本地,在webstorm中能够执行下面的操做步骤
项目右键 -> Git -> Repository -> Pull -> Pull
应该也能够用命令更新,只是..我不知道而已!!!!!
到此,本地项目上传到服务器 以及 从服务器更新项目 就完毕啦!