一、搭建本地服务器
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 databa se ./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 <root@yue-virtual-machine.(none)>
Date: Wed Mar 29 15:55:46 2017 +0800
添加测试接口
commit a1d7250d5ae2965d9dc3210cfbdd45cfc2c4927b
Author: root <root@yue-virtual-machine.(none)>
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
a1d7250Git提供了一个命令10、回退版本提交到服务器git reflog
用来记录你的每一次命令注: 回退版本只能在本地回退,不能在服务器仓库回退回退后的版本提交并更新服务器命令:git push -f -u origin master