搭建本地服务器

一、搭建本地服务器 1、在ubuntu上安装ssh
apt-get install openssh-server
2、安装git服务器
apt-get install git-core

3、创建用户git,用来管理运行git服务
adduser git
设置密码


4、创建一个空的仓库(仓库目录为:/home/yue/work0615/gitserver/gitServer/newgit/)
git --bare init
创建一个所谓的裸仓库,之所以叫裸仓库是因为这个仓库只保存git历史提交的版本信息,而不允许用户在上面进行各种git操作,如果你硬要操作的话,只会得到下面的错误(”This operation must be run in a work tree”)


5、测试和提交文件到服务器
cd/home/yue/work0615/gitserver/gitServer/testgit
git clone git@192.168.17.201:/home/yue/work0615/gitserver/gitServer/newgit/


6、提交文件、添加注释、提交到本地服务器
git add .
git commit -m "测试1"
git push origin master(输入ubuntu git 用户密码)



7、git在push的时候出现insufficient permission for adding an object错误

Counting objects: 3, done.
Writing objects: 100% (3/3), 238 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: error: insufficient permission for adding an object to repository database ./objects
remote: fatal: failed to write object
error: unpack failed: unpack-objects abnormal exit
To git@192.168.17.201:/home/yue/work0615/gitserver/gitServer/newgit/
! [remote rejected] master -> master (unpacker error)
error: failed to push some refs to 'git@192.168.17.201:/home/yue/work0615/gitserver/gitServer/newgit/'

原因:
git库权限的问题
$ ls -la,查看git库的所有者

解决:
在git库目录下:
$sudo chown -R git:git git库




二、将本地仓库服务器代码提交到远程服务器 1、注册一个github账号


2、新一个工程

3、创建本地空仓库
git init
4、添加文件
git add .
5、添加注释
git commit -m "xxx"
6、设置远程服务器路径

git remote add origin https://github.com/rihuiwangxun/test.git

查看服务器地址 git remote -v



7、提交代码到远程服务器

git push -u origin master(设置账号和密码)


8、修改远程仓库路径


【搭建本地服务器】先删后加
git remote rm origin
git remote add origin [url]

9、版本回退

git log命令显示从最近到最远的提交日志:信息如下

root@yue-virtual-machine:/home/yue/work0615/test/demoSql# git log commit c19a061a17a407b2dd4b09a9012637b6e895dbec Author: root Date:Wed Mar 29 15:55:46 2017 +0800添加测试接口commit a1d7250d5ae2965d9dc3210cfbdd45cfc2c4927b Author: root Date:Wed Mar 29 15:49:26 2017 +0800初始化版本1




commit a1d7250d5ae2965d9dc3210cfbdd45cfc2c4927b表示commit版本号



回退上一个版本:

root@yue-virtual-machine:/home/yue/work0615/test/demoSql# git reset --hard HEAD^HEAD is now at a1d7250 初始化版本1




回退到指定版本


git reset --hard a1d7250

Git提供了一个命令git reflog用来记录你的每一次命令

10、回退版本提交到服务器

注: 回退版本只能在本地回退,不能在服务器仓库回退

回退后的版本提交并更新服务器命令:

git push -f -u origin master









    推荐阅读