0.出发点

由于项目开发的规模和复杂度越来越大,有时候需要同时多人在不同的嵌入式linux上开发代码,在没有用git管理代码和文档前,很难同步代码和文档的版本,宝贵的代码存储也没有安全感。

github虽然也提供代码托管,但在国内访问github网速令人担忧,并且要建立私有化的github软件仓库还需要付费,宝贵的代码存储在别人的服务器上也没有安全感。

正好手上有闲置的树莓派3一块,拿来搭建私有git代码仓库正好,低功耗的树莓派3全天开启当服务器用完全合理。配合办公用的局域网,一下子私有git代码仓库就能用起来,真好。

搭建软硬件环境要求:

  • 硬件:树莓派3
  • 系统:ubuntu-mate-16.04
  • 所需软件:openssh-server openssh-client python-setuptools git

以下叙述中,git服务器端指树莓派3,git客户端指开发代码的具体机器。

1.git服务器端搭建

(1)树莓派3安装ubuntu-mate-16.04系统

默认大家都已经在树莓派3上安装好了ubuntu-mate-16.04系统,如果没有请参考以下教程自行安装:

ubuntu mate 16.04镜像文件下载地址:https://ubuntu-mate.org/download/

安装参考教程:http://www.ncnynl.com/archives/201606/201.html

(2)安装git、ssh等软件

$ sudo apt-get install git openssh-server openssh-client  python-setuptools

(3)新增用户(用户名为slamgit),用于运行git服务,回车后会提示输入密码

$ sudo adduser slamgit

(4)初始化git仓库

#切换到slamgit用户
$su slamgit
#在slamgit家目录新建code目录用于存放git代码仓库数据
$mkdir /home/slamgit/code
$cd /home/slamgit/code#建立自己的裸仓库,用于给git客户端上传需要托管的代码
#加上--bare参数后,服务端是初始化的[裸仓库]一般服务器上的Git仓库都是以.git结尾的裸仓库。
#裸仓库没有工作区,因为服务器上的git仓库是为了共享用,不能让用户直接登录到服务器上去修改工作区中的代码,用裸仓库更加安全
$ git init --bare test.git

现在服务器上面的git仓库已经初始化完成,git客户端可以向相应的仓库上传需要托管的代码了。

上面是建立了一个叫test.git的裸仓库,只是用于测试。在后面的实际项目中,我们可以继续建立更多的仓库,仓库最好以实际的工程名命名,方便管理,比如:

#建立实际项目的仓库,例如miiboo项目
$ git init --bare miiboo.git

(5)测试git服务器搭建是否成功

随便找一台在同一局域网下装有git的电脑,clone刚才创建的test.git仓库

#192.168.0.163为树莓派3的IP地址,根据实际情况进行替换
$ git clone slamgit@192.168.0.163:/home/slamgit/code/test.git

如果在git客户端电脑上出现了test这个文件夹,就说明搭建成功了!!!

2.git客户端使用

(1)给实际代码项目初始化git配置

先进入项目文件夹,通过命令 git init 把这个目录变成git可以管理的仓库;如果是clone网上开源的项目,可以先删除项目文件夹下的.git隐藏文件夹,然后再执行git init命令。

#在项目文件夹下,执行
$ git init

(2)把项目中的文件添加到本地版本库中

使用命令git add 文件,添加到暂存区里面去,如果后面接小数点“.”,意为添加文件夹下的所有文件。

$ git add .

(3)提交说明commit填写

用命令git commit告诉Git,把文件提交到仓库,引号内为提交说明

$ git commit –m "init a base version,add a first file for push to server"#如果这一步报fatal的错误,需要执行如下命令设置自己的用户名与email,引号内填上自己的名字和email$ git config --global user.name "xxx"    $ git config --global user.email "xxx@xxx.com"

(4)关联到远程仓库

$ git remote add origin 你的远程库地址
#例如:
#git remote add origin slamgit@192.168.0.163:/home/slamgit/code/test.git#如果上面步骤报错,先删除origin,然后重新添加origin
#git remote rm origin
#git remote add origin slamgit@192.168.0.163:/home/slamgit/code/test.git

(5)将本地代码推送到远程仓库

#其中origin是远程仓库名字的别名;master是主分支名
$ git push origin master 

(6)用远程仓库同步本地代码

#获取远程库与本地同步合并,如果远程库不为空必须做这一步,否则后面的提交会失败
$ git pull --rebase origin master

3.更多git代码管理操作

(1)版本管理

版本回退

工作区和缓存区

管理修改

撤销修改

删除文件

(2)分支管理

创建与合并分支

解决冲突

分支管理策略

Bug分支

Feature分支

多人协作

(3)标签管理

创建标签

操作标签

clone远程代码 在不同电脑上git_用树莓派3搭建私有git代码仓库相关推荐

  1. git clone 添加代理_用树莓派3搭建私有git代码仓库

    0.出发点 由于项目开发的规模和复杂度越来越大,有时候需要同时多人在不同的嵌入式linux上开发代码,在没有用git管理代码和文档前,很难同步代码和文档的版本,宝贵的代码存储也没有安全感. githu ...

  2. clone远程代码 在不同电脑上git_如何使用git在本地电脑clone别人的github上的远程仓库代码...

    如何使用git在本地电脑clone别人的github上的远程仓库代码背景操作步骤1.在自己电脑创建本地仓库2.git初始化设置.仓库的初始化以及绑定SSH秘钥3.fork别人的github项目,然后c ...

  3. linux git中央仓库地址,如何在Linux上搭建一个Git中央仓库

    前言:本教程只面向那些个人开发者,想要自己在linux上搭建一个git中央仓库用来上传发布自己的项目.但是对于团队来说可能有更高的要求,可以使用gitlab搭建一个可视化的类似github的版本管理系 ...

  4. linux中央服务器,如何在Linux上搭建一个Git中央仓库

    前言:本教程只面向那些个人开发者,想要自己在linux上搭建一个git中央仓库用来上传发布自己的项目.但是对于团队来说可能有更高的要求,可以使用gitlab搭建一个可视化的类似github的版本管理系 ...

  5. 在linux下怎么解除git本地仓库_如何在Linux上搭建一个Git中央仓库

    前言:本教程只面向那些个人开发者,想要自己在linux上搭建一个git中央仓库用来上传发布自己的项目.但是对于团队来说可能有更高的要求,可以使用 gitlab 搭建一个可视化的类似github的版本管 ...

  6. 在阿里云上搭建私有GIT仓库

    在阿里云上搭建私有GIT仓库 年轻人就得好好学习,不能这么颓废 最近做项目练练手,用到了github, 但是github访问速度是真的慢啊,下载项目,下载一天了.所以呢,我是个成熟的人了,只好自己搭建 ...

  7. linux ubuntu 安装git服务器,[linux] Ubuntu20.04上安装搭建私有Git服务器Gitea

    [linux] Ubuntu20.04上安装搭建私有Git服务器Gitea [linux] Ubuntu20.04上安装搭建私有Git服务器Gitea Gitea 是相比于gitlab更加轻量化,而且 ...

  8. Docker上部署GitLab , 搭建私有Git仓库 (基于Docker镜像sameersbn/docker-gitlab)

    # 使用docker-compose.yml 安装gitlab服务器 $ wget https://raw.githubusercontent.com/sameersbn/docker-gitlab/ ...

  9. clone远程代码 在不同电脑上git_Git 如何 clone 远程 非 master 分支的代码

    问题描述 我们每次使用命令 git clone git@gitlab.xxx.com:xxxxx.git 默认 clone 的是这个仓库的 master 分支.如果最新的代码不在 master 分支上 ...

最新文章

  1. Github无法加载或不显示图片问题
  2. 如何用python创建一个下载网站-详解如何用python实现一个简单下载器的服务端和客户端...
  3. 《深入理解计算机网络》读书笔记一
  4. java npm install_npm install不构建供应商可执行文件
  5. 三大性质总结:原子性,有序性,可见性
  6. [leetcode-347-Top K Frequent Elements]
  7. 设计模式----简单工厂
  8. Silverlight DataGrid 在显示数据, 如果遇到全角的符号, 好像会出错. 待测试.
  9. 结构体变量偏移量及大小计算
  10. rbd export V2
  11. Mac剪切AVI视频
  12. 华为数字化转型与数据管理实践介绍 附下载
  13. 55. VUE 导航守卫
  14. 类模板和函数模板的区别及其应用案例 c++ 简单易懂
  15. Ever-Flowers IN Never-Dream(19)
  16. 浅谈 Nyquist–Shannon(奈奎斯特-香农)采样定理
  17. 《程序员升职记》 第二年 繁忙的收发室
  18. Java之下载word文档,java企业级应用架构
  19. 除法竖式在MathType中该怎样进行编辑
  20. Kafka安装以及验证

热门文章

  1. mysql5.5连接器_MySQL :: MySQL 5.1参考手册 :: 26. 连接器
  2. 对话推荐系统_RSPapers | 对话推荐系统论文合集
  3. nohup 带参数_广州市西门子两通阀VVF42.40-25C+SKD62带断电
  4. Gym 101221I [WF2014]Sensor Network (二分图匹配)
  5. luogu P4725 多项式对数函数 (模板题、FFT、多项式求逆、求导和积分)
  6. mysql 异常关机后 无法查数据_MySQL数据库非法关机造成数据表损坏怎么排查 | 学步园...
  7. rust服务器假人文件,rust游戏手机版-rust手游预约(腐蚀游戏手机版)-乐游网安卓...
  8. 金蝶kis商贸采购单商品代码_金蝶KIS商贸版流程
  9. 实践作业4:Web测试实践(小组作业)记录1
  10. Python学习之路:内置函数