一、搭建本地服务器
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: rootDate: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
推荐阅读
- linux 多网卡发送udp广播
- linux busybox中文显示修改说明
- f1c100s spi nand启动调试记录
- linux系统|数据备份--dump
- git pull all branch
- Ubuntu18.04下搭建go开发环境
- Ubuntu 软件安装、查找、卸载--apt-get、apt-cache命令安全