Git服务器的搭建和使用
一、GIT服务器的搭建
1. 安装Git
yum -y install git
2. 创建git用户
adduser git
3. 创建证书登陆
收集所有客户端需要登录的用户的公钥,就是他们自己的id_rsa.pub
文件,把所有公钥导入到/home/git/.ssh/authorized_keys
文件里,一行一个。
保证ssh不输入密码能连接到git用户
4. 初始化
[root@app- opt]# git init --bare demo.git
Initialized empty Git repository in /opt/demo.git/
Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git
结尾。
5. 把owner改为git
chown -R git:git demo.git/
6. 禁用shell登陆
将/bin/bash改成
/usr/bin/git-shell;这样,git
用户可以正常通过ssh使用git,但无法登录shell,因为我们为git
用户指定的git-shell
每次一登录就自动退出。
[root@app- opt]# tail -1f /etc/passwd
git:x::::/home/git:/usr/bin/git-shell
至此git服务器就搭建完成了。
二、GIT的基本使用
1. 克隆远程仓库
在客户端操作
[root@wls12c DEV]$ git clone ssh://git@120.77.85.77:2121/opt/demo.git
Initialized empty Git repository in /root/DEV/demo/.git/
warning: You appear to have cloned an empty repository.
[root@wls12c DEV]$ ls
demo
2. 初始化客户端的工作环境
[root@wls12c demo]$ git config --global user.name "Scott Cho"
[root@wls12c demo]$ git config --global user.email "root@wls12c.com"
[root@wls12c demo]$ git config --global core.editor vim
3. 向Git本地仓库中提交一个新文件
[root@wls12c demo]$ echo "I successfully cloned the Git repository" > readme.txt
[root@wls12c demo]$ git add readme.txt #增加数据到暂存区
[root@wls12c demo]$ git status #查看当前工作目录的状态
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
# new file: readme.txt
#
[root@wls12c demo]$ git log
fatal: bad default revision 'HEAD'
[root@wls12c demo]$ git commit -m "Clone the Git repository"
[master (root-commit) b548d3b] Clone the Git repository
files changed, insertions(+), deletions(-)
create mode readme.txt
[root@wls12c demo]$ git log
commit b548d3bd469cf5f183e9be9a3b2949f6361b5385
Author: Scott Cho <root@wls12c.com>
Date: Mon Feb :: + Clone the Git repository
常见技巧:
查看当前文件内容与Git版本数据库中的差别: git diff readme.txt
将当前工作目录内的所有文件都一起添加到暂存区域: git add .
创建忽略文件列表: .gitignore
文件被直接提交到Git数据库: git commit -a -m "Modified again”
4 定义远程的Git服务器
[root@wls12c demo]$ git remote add server ssh://git@120.77.85.77:2121/opt/demo.git
5. 将文件提交到远程Git服务器
[root@wls12c demo]$ git push -u server master
Counting objects: , done.
Writing objects: % (/), bytes, done.
Total (delta ), reused (delta )
To ssh://git@120.77.85.77:2121/opt/demo.git
* [new branch] master -> master
Branch master set up to track remote branch master from server.
6. 移除数据
保留工作区的文件,删除暂存区的文件: git rm --cache test.java
从Git暂存区和工作目录中一起删除: git rm -f test.java
删除Git版本仓库内的文件快照: git rm test.java
7. 重命名文件
git mv 1.txt 2.txt
git commit -m "changed name"
8. 还原数据
[root@wls12c demo]$ echo "Git is a version control system" >> readme.txt
[root@wls12c demo]$ git add .
[root@wls12c demo]$ git commit -m "test rollback"
[master e34168a] test rollback
files changed, insertions(+), deletions(-)
[root@wls12c demo]$ git log --pretty=oneline
e34168afeff0e1b1462eb6a52db4bd207d384332 test rollback
2947448a1d50b8a2613f93c54db31db797e65a5c changed name
458eacab758f72ecb4f63524caa301b4c440d702 ADD .txt agin
7c1464fa93af1eed88eaa76b15a663bae84cb78a ADD .txt agin
361b54468b1d9e4cbd271ce2be196d556ee84556 ADD .txt
b548d3bd469cf5f183e9be9a3b2949f6361b5385 Clone the Git repository
[root@wls12c demo]$ git reset --hard 29474
HEAD is now at changed name
[root@wls12c demo]$ cat readme.txt
I successfully cloned the Git repository
用git reflog命令来查看所有的历史记录,这样就可以看见还原以前的记录了。
我们突然发现不应该写一句话的,可以手工删除(当内容比较多的时候会很麻烦),还可以将文件内容从暂存区中恢复或者版本库中恢复:
[root@wls12c demo]$ echo "xxxxx" >>readme.txt
[root@wls12c demo]$ git checkout -- readme.txt
[root@wls12c demo]$ cat readme.txt
I successfully cloned the Git repository
Git is a version control system
checkou规则是如果暂存区中有该文件,则直接从暂存区恢复,如果暂存区没有该文件,则将还原成最近一次文件提交时的快照。
9. 管理标签
打标签 tag v1.0
git tag v1.1 -m "version 1.1 released" d316fb
查看所有的已有标签:
git tag
查看此标签的详细信息:
git show v1.0
10. 创建与合并分支
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
11. 拉取远程分支
git branch --set-upstream origin/dev
git pull origin dev
Git服务器的搭建和使用的更多相关文章
- git 服务器的搭建
文章转载地址:http://www.linuxidc.com/Linux/2015-05/117502.htm 亲测可行,已经自己搭建一个正在使用中,搭建完成后,结合着pycharm +git,就能直 ...
- 本地Git服务器的搭建及使用
本地Git服务器的搭建及使用 Git本地服务器环境搭建 搭建好的本地git服务器的局域网ip是192.168.1.188,用户名是RSCSVN 教程链接:http://blog.csdn.net/cc ...
- 关于git服务器的搭建
Git 服务器可搭建在多个系统平台上. 本篇以 Windows 和 Ubuntu 系统为例,简单介绍 Git 服务器的构建. 最后使用 eclipse 的 egit 插件和 git clone 这两种 ...
- 项目实践中--Git服务器的搭建与使用指南(转)
一.前言 Git是一款免费.开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.在平时的项目开发中,我们会使用到Git来进行版本控制. Git的功能特性: 从一般开发者的角度来 ...
- 项目实践中--Git服务器的搭建与使用指南
一.前言 Git是一款免费.开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.在平时的项目开发中,我们会使用到Git来进行版本控制. Git的功能特性: 从一般开发者的角度来 ...
- git服务器的搭建
http://blog.jobbole.com/25944/ 1,概念 git服务器:就是一个仓储,一个大家都可以访问的公共仓储,大家可以从这个仓储中拉取和推送数据. 协议: 与gist服务通讯的仓储 ...
- git服务器简易搭建法
受尽svn各种折磨的小伙伴都听说过git. 但是网上一搜索, 本来打算跟svn一样. 下一个服务器, 装下就可以开始用了. 没想到啊, 没想到. 居然需要Linux天赋点… 好吧, 拜鸟哥门下把Lin ...
- Git服务器环境搭建(打造属于自己的存储库)
Git服务器搭建之CentOs7-阿里云搭建 首先使用连接工具连接到远程的阿里云服务器CentOs7上. 1.安装Git及创建用户 # 安装Git $ yum install git # 创建一个gi ...
- Ubuntu下 git 服务器的搭建【转】
转自:http://www.open-open.com/lib/view/open1391477731082.html 搭建git服务器的4个步骤 1 配置服务器前的准备工作 首先ubuntu系统 ...
随机推荐
- [kafka] 003_kafka_主要配置
1.broker配置 2.Producer主要配置 3.Consumer主要配置 出错提示信息: replication factor: 1 larger than available brokers ...
- 查看和调试Qt源码
简述 在调试程序的时候,有时需要调试进入 Qt 源码,这不仅有利于我们了解内部实现机制,而且对于解决一些隐蔽性问题很有帮助. 都知道 F11 是“单步进入”,可是在调试的过程中,按下 F11 却无法进 ...
- Mac OS, Mac OSX 与Darwin
作为收购 NeXT 公司的结果,苹果公司获得了 NeXTSTEP 架构中的 Mach 和 Objective-C 等设计.尽管 NeXTSTEP 本身已经不再发展了,但是其中的组件在 OS X 中获得 ...
- SAP 产品条码WMS结合 以及ABAP script的集成 BarCode
条码和RFID打印解决方案 1, 热转印条码标签打印 热转打印技术的原理是通过加温和加压将色带上的固体油墨熔化转印到介质上完成打印的.通过选择热转印色带与标签材料匹配,热转印打印方式可以产生耐高温 ...
- 【转】【WPF】WPF绑定用法
一.简介 为了后面行文顺利,在进入正文之前,我们首先对本文所涉及到的绑定知识进行简单地介绍.该节包含绑定的基本组成以及构建方式. WPF中的绑定完成了绑定源和绑定目标的联动.一个绑定常常由四部分组成: ...
- Spring JDBC入门程序
要了解JdbcTemplate类与Spring JDBC框架相关的概念,下面通过编写一个简单的例子演示如何使用Spring JDBC框架,在这个示例中,将在以student表上实现插入数据和读取数据的 ...
- e831. 从JTabbedPane中删除一个卡片
// To create a tabbed pane, see e828 创建JTabbedPane // Remove the last tab pane.remove(pane.getTabCou ...
- windows下docker使用及注意事项
1.windows container模式下,pull镜像会失败 no matching manifest for windows/amd64 in the manifest list entries ...
- R语言在柱状图上添加文字
代码示例: data <- data.frame(A = 1:2, B = 1:2, C = 1:2) data <- data.matrix(data) par(font = 2, lw ...
- Java多线程——Lock&Condition
Lock比传统线程模型中的synchronized方式更加面向对象,与生活中的锁类似,锁本身也应该是一个对象.两个线程执行的代码片段要实现同步互斥的效果,它们必须用同一个Lock对象. package ...