Git学习总结(5)——搭建Git简易高效服务器
1. mysysgit+gitblit安装流程
1.1资源
需先下载好的资源(公司用的1.6,1.7+请自行匹配对应的mysysgit+gitblit):
jdk1.6
Git-1.8.4-preview20130916.exe
gitblit-1.2.1.rar
1.2安装
1.2.1 Git Bash安装
1)双击弹出安装页面
2)点击2次next,进入路径选择,添加自定义的路径即可;
3)点击next,进入 选择组件,
4)点击2次next 进,选择运行环境,选择 “run Git from the Windows Command Prompt”;
5)点击next,选择”Checkout as-is,commit Unix-style line endings”;
6)点击next,进入安装进度页面,等待安装完成;
7)点击”Finish”,安装完成,桌面、开始菜单、和右键菜单都出现程序,很方便。
补充:
1.启动即可使用,不需要配置环境变量;
2.在要使用的文件夹内右键选择 Git Bash Here,可以直接进入该目录下的命令行,不用自己在命令行下面切换路径,是不是很方便呢。例如:D:\hjj-repo下右键
10)测试
在弹出的命令行内输入”git version”,出现如下内容即为安装成功;
1.2.2Gitblit安装
1)直接解压,目录自选;
2)配置gitblit.properties;
a. 路径:gitblit目录/data/gitblit.properties,“记事本”打开;
b. 找到server.httpPort,设定http协议的端口号(如:7070)
server.httpsPort,设定https协议的端口号(如:7071)
c. 找到server.httpBindInterface和server.httpsBindInterface,设定服务器的IP地址为空,方便其他人访问;
d.保存,并退出。
3)测试
运行gitblit目录下的gitblit.cmd 批处理文件;
运行结果如下,运行成功。
2. Gitblit 的web操作
2.1管理员服务器首次登陆
在浏览器中打开url:http://127.0.0.1:7070(端口是自己配置的端口),在右上角输入admin/admin登陆;–请记得修改密码(admin)的
2.2创建仓库
1)选择new repository,进入新建仓库,”general”选项卡如下:
“access permissions”选项卡如下:
2)”save”保存;
3)同上,创建repository-02,完成后如图;
2.3创建用户
导航条选择”users”–选择”new user”,进入创建用户界面;
1)创建用户A,”general”选项卡如图:
”access permissions”选项卡如图:1表示赋予的仓库,2表示在该仓库能够进行的操作;
2)点击”save”保存并退出;
3)同理创建用户 user-B,赋予权限clone/push 仓库2;
4)同理创建用户 user-C赋予权限clone/push 仓库1和2;
3.本地操作
3.1克隆服务器的仓库
1)首先新建一个操作的文件夹,如:”hjj-repo”;
2) 菜单选择”Git Bash Here”,在弹出的命令行窗口,输入:
创建全局的用户名:
git config – -global user.name “name”;
git clone http://服务主机IP:端口/git/仓库名.git,例如:
git clone http://10.10.10.10:7070/git/repository-01.git
会提示输入用户名和密码,输入即可;
如图;
建议不要用admin,用admin创建一个高权限的用户作为仓库的管理员;
在本地文件夹中会出现clone下来的仓库,如图:
cd 到repository目录下,和.git平级,开始操作。其实是创建了一个和远程仓库对应的本地仓库。为了操作方便,我们给远程仓库起一个别名,一般为”origin”,
命令为:git remote add origin http://xx.xx.xx.xx:7070/git/repository-01.git
不起也是可以,每次输入完整的地址url;
默认的也可以,默认为”origin”;
3.2本地操作
1)本地的基本操作:
a.增加文件
例如,我增加两个文件 “tables.txt”和”中文-表格.txt”
查看我的本地仓库状态,入命令:git status
提示仓库内多出了2个文件,可以用”add”来跟踪;
b.add把文件纳入跟踪
输入命令:git add tables.txt 和 git add中文-表格.txt
并且查看状态为:
显示为有2个文件纳入了暂存区,需要commit到我们的分支上;
c.commit提交到分支上,输入命令:git commit –m “注释的内容”。
一定要加上注释的内容才能提交成功,它会显示在每一次的操作中和日志中;
出现如箭头所指的,说明暂存区的内容已经全部提交完成了。
多个文件、删除操作等,可以用命令 git add –all
用ULtraEdit/editPlus等编辑器编辑完的文件的.bak文件请及时删除,不要提交;
补充:
1)撤销修改–修改后,还没有放到暂存区:
在我未提交之前,我发现添加文档内容有误,所以我得马上恢复以前的版本,现在我可以有如下几种方法可以做修改:
第一:如果我知道要删掉那些内容的话,直接手动更改去掉那些需要的文件,然后add添加到暂存区,最后commit掉。
第二:我可以按以前的方法直接恢复到上一个版本。使用 git reset –hard HEAD^。
第三:git checkout –- 文件名
2)撤销修改—已经在暂存区了,又做了修改:
git checkout –文件名 该命令会使文件回到放入暂存区之后的状态;
d.提交完成即完成本地的仓库的分支的工作,可以推送(push)到远程的仓库了。但是就如我们正常使用SVN一样,我们的提交可能和其他人冲突,所以正确的操作规范是:
1)先查看远程的仓库的状态;命令为:git remote show 远程仓库名
可以查看是否有人推送及更新情况;
2)拉取远程仓库,命令:git pull 仓库名
如果是第一次推送,一定要pull;
up-to-date表示本地现有内容和你上次提交的并无差异;
此处有2种情况:
1)本地的修改和远程的修改不冲突;
pull会自动合并(merge)远程的修改和本地的修改,git status 也会显示没有修改;
2)本地的修改和远程的修改冲突(比如刚好在同一行或者同一块);
程序会自动合并(merge),删除那一行原有的,修改为你修改的。所以要在web端做好比较再pull。
3) 推送到远程仓库,命令:git push仓库名 分支名
如果是第一次推送,需要输入git push -u仓库名 分支名
4)查看
命令查看:git remote show 仓库名;
web查看:http:// xxxx:7070(推荐web查看,更详细)
注释1:路径;
注释2:commit的注释;
注释3:提交的文件的内容;
注:此处可以直接在页面标题下下载”.ZIP”或者”.gz”包;
4.日常维护
推荐2个方案:
方案1:集中式管理。
设立1-2个管理员,组员仅view权限。管理员负责服务器仓库的搭建和分支管理,其余的组员提交给管理员审核,再由管理员添加到master;一个文档夹建立一个仓库,每个仓库添加可以预览的人员即可实现简单但高效的权限管理。
此方案适合文档管理等,便于维护;
方案2:分布式管理。
设立1-2个管理员,组员有pull/push权限。由管理员创建代码分支,并管理。由组员在pull/fork分支,并修改和提交到该分支,经管理员审核同意后,管理员合并到主分支上。典型的分布式协作管理;每一步的操作都会在服务器上有详尽的记录。
5. Git基本常用命令如下:
mkdir: XX (创建一个空目录 XX指目录名)
pwd: 显示当前目录的路径。
git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件。
git add XX 把xx文件添加到暂存区去。
git commit –m “XX” 提交文件 –m 后面的是注释。
git status 查看仓库状态
git diff XX 查看XX文件修改了那些内容
git log 查看历史记录
git reset –hard HEAD^ 或者 git reset –hard HEAD~ 回退到上一个版本
(如果想回退到100个版本,使用git reset –hard HEAD~100 )
cat XX 查看XX文件内容
git reflog 查看历史记录的版本号id
git checkout — XX 把XX文件在工作区的修改全部撤销。
git rm XX 删除XX文件
git remote add origin https://github.com/tugenhua0707/testgit 关联一个远程库
git push –u(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库
git clone https://github.com/tugenhua0707/testgit 从远程库中克隆
git checkout –b dev 创建dev分支 并切换到dev分支上
git branch 查看当前所有的分支
git checkout master 切换回master分支
git merge dev 在当前的分支上合并dev分支
git branch –d dev 删除dev分支
git branch name 创建分支
git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作
git stash list 查看所有被隐藏的文件列表
git stash apply 恢复被隐藏的文件,但是内容不删除
git stash drop 删除文件
git stash pop 恢复文件的同时 也删除文件
git remote 查看远程库的信息
git remote –v 查看远程库的详细信息
git push origin master Git会把master分支推送到远程库对应的远程分支上
Git学习总结(5)——搭建Git简易高效服务器的更多相关文章
- Git学习之常见错误 git push 失败
Git学习之常见错误 git push 失败 问题描述: git push Counting objects: , done. Delta compression using up to thread ...
- Git学习系列之如何正确且高效地将本地项目上传到Github(图文详解)
不多说,直接上干货! 首先你需要一个Github账号,所以还没有的话先去注册吧! https://github.com/ 见 如何走上更高平台分享传递干货知识:(开通个人Github面向开源及私有软件 ...
- Git版本控制之ubuntu搭建Git服务器
Git是一个开源的分布式版本控制系统,可以有效.高效的处理从很小到非常大的项目版本管理.使得开发者可以通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库,也可以将代码提交到Git服务 ...
- 【Git学习笔记】初始化Git仓库和版本回退
学习地址 http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 什么是版本库呢?版本库又 ...
- git学习利器:《Git Pro》中文版
Git书籍有<版本控制之道git>,但是很一般.强烈推荐<Git Pro>中文版! 很多开源软件的教程也是免费开源的在线阅读的. <Git Pro>中文版在线阅读h ...
- 自定义Git之使用centos搭建git 服务器
Github 公开的项目是免费的,但是如果你不想让其他人看到你的项目就需要收费. 这时我们就需要自己搭建一台Git服务器作为私有仓库使用. 接下来我们将以 Centos 为例搭建 Git 服务器. 1 ...
- Git学习笔记01--常用Git命令、cmd命令及Git总结性知识
资源:外国网友制作的 Git Cheat Sheet 第二次学习廖雪峰老师的Git教程,学习过程中把教程中涉及到的Git命令及总结性知识记录下来方便二次复习. 知识点 所有的版本控制系统,其实只能跟踪 ...
- Git学习笔记(windows git之初体验)
阿里国内镜像地址: https://npm.taobao.org/mirrors/git-for-windows/ 最近在学习廖雪峰老师关于git的教程,链接可以在我的首页找到.首先使用国内镜像下载并 ...
- git学习笔记03-本地git常用操作及原理-文件增删改
1.查看git状态 git status 这个可以告诉我们对git做了哪些操,比如增删改 2.既然我们修改了东西,有的时候想看看修改了什么,毕竟我们的记忆力并不如电脑 git diff 文件名 (默 ...
随机推荐
- MongoDB Shell (mongo)
https://docs.mongodb.com/getting-started/shell/client/ The mongo shell is an interactive JavaScript ...
- kibana 5.5 源码编译踩坑记录
由于项目需要定制开发kibana,因此需要编译kibana,在开发环境下运行. 注意:必须下载kibana 5.5的源码才能正常编译,下载release或者snapshot版本是不行的,运行npm ...
- 5.array
#include <iostream> #include <array> #include <algorithm> using namespace std; //a ...
- PostgreSQL Replication之第四章 设置异步复制(4)
4.4 基于流和基于文件的恢复 生活并不总只是黑色或白色:有时也会有一些灰色色调.对于某些情况下,流复制可能恰到好处.在另一些情况下,基于文件复制和PITR是您所需要的.但是也有许多情况下,您既需要流 ...
- 51Nod 活动安排问题(排序+优先队列)
有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动之间不能交叠,求要安排所有活动,最少需要几个教室? Input 第一行一个正整数n (n <= 10000)代表活动的 ...
- css columns 与overflow结合的问题
想实现上面这样分栏,并且溢出滚动的效果.可是自己下面的代码只能得到横向滚动条.觉得出现这个情况觉得还蛮有意思的,特地记录一下. <li v-for="(item,index) in s ...
- 关于common.js里面的module.exports与es6的export default的思考总结
背景 公司项目需要裁切功能,基于第三方图片裁切组件vue-cropper(0.4.0版本),封装了图片裁切组件(picture-cut)(放在公司内部组件库,仅限于公司内部使用) 在vue-cropp ...
- Xshell6连接Ubuntu18.04
1.首先在自己windows10电脑上安装了xshell6,安装过程不叙述了 2.打开xshell 3.执行新建命令.打开Xshell软件后找到左上角第一个“文件”菜单并单击,弹出来一个下拉框,点击选 ...
- 关于git及其github的使用
一:序言(就是瞎扯) 人们都说不会使用git和github的程序员都不是好程序员,是的,当我第一次听到的时候有点失望.因为我也不会...但是这句话激起了我学习使用git的动力(其实也没怎么深入的学习) ...
- CSU 1364 Interview RMQ
题意: 瑶瑶有一家有一家公司,最近他想招m个人.因为他的公司是如此的出名,所以有n个人来参加面试.然而,瑶瑶是如此忙,以至于没有时间来亲自面试他们.所以他准备选择m场面试来测试他们. 瑶瑶决定这样来安 ...