svn是中央集中版本,所有的人都下载同一个版本去更新,git是分布式的,可以现在自己想要的分支。svn集中式版本控制系统不但速度慢,而且必须联网才能使用
git系统的安全性高。git及其强大的分支管理
git不仅仅是个版本系统,他也是个内容管理系统,工作管理系统等
git是分布式的svn不是,这是git和其他非分布式的版本控制系统,列如svn cvs最核心的区别
git把内容按元数据方式存储,而svn是按文件,所有的资源控制系统都是吧文件的源信息隐藏在一个类似svn.cvs等文件夹里
git和svn的分支:分支再svn中一点不特别,就是版本库中的另外的一个目录
git没有一个全局的版本号,而svn有 目前为止svn相比git缺少的最大的特征
git内容完整性要优于svn:git的内容储存使用的是sha-1
哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障时和网络问题是降低对版本库的破环////

git分布式需要的实验环境两台7.5的服务器

永久修改主机名
vim /etc/hostname
devops应用
开发写完代码上传到git或者Gitlab,Jenkins从gitlab拉去代码,(叫持续集成ci)
maven就是java的yum仓库
分布式集成了本地仓库和远程仓库的合成。
先上传到本地仓库,然后在吧本地仓库推到远程仓库。即使没有远程仓库。两个本地仓库以可以互推。
公有远程仓库的网址
https://github.com
可以注册自己的远程仓库。

git需要做全局配置,
基本就是告诉用户是谁,邮箱是谁
工作流程
git在工作之前需要向建立工作区,即建立git项目目录
将工作区里的东西暂存 git add
暂存区提交到本地 git commit
本地提交到远程,git push
可以用yum直接安装,也可以编译安装

编译安装过程
yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum -y install gcc perl-ExtUtils-MakeMaker
tar xf git-2.9..tar.gz -C /usr/src/
cd /usr/src/git-2.9./
./configure --prefix=/usr/local/git
make && make install
ln -sf /usr/local/git/bin/* /usr/bin/
ln -s /usr/libexec/git-core/* /usr/bin/
全局变量开启中文
export LANG=zh_CN.UTF8
初始git目录
mkdir -p /mycode
cd /mycode
[root@git1 mycode]# git init
初始化空的 Git 仓库于 /mycode/.git/
创建一个暂时缓存
[root@git mycode]# touch test.txt
提交到暂存区
[root@git mycode]# git add *(删除的暂存提交git rm 文件名) [root@git mycode]# git status
位于分支 master 初始提交 要提交的变更:
(使用 "git rm --cached <文件>..." 以取消暂存) 新文件: test.txt git commit 将暂存提交到本地仓库
必须-m写说明,要不不让提交
[root@git mycode]# git commit -m "test" *** Please tell me who you are. Run git config --global user.email "you@example.com"
git config --global user.name "Your Name" to set your account's default identity.
Omit --global to set the identity only in this repository. fatal: unable to auto-detect email address (got 'root@git.(none)') 还需要做全局变量,告诉他是谁,还有邮箱
然后提交成功
[root@git mycode]# git config --global user.email "491537692@qq.com"
[root@git mycode]# git config --global user.name "cashsunan"
[root@git mycode]# git commit -m "test"
[master(根提交) cc12e4d] test
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 test.txt
[root@git mycode]#
查看远程仓库
[root@git mycode]# git remote -v
添加到远程仓库
git remote add 代号 url
默认的代号叫origin
[root@git mycode]# git remote add test https://github.com/cashsunan/sunan.git
将文件推到远程仓库
git push -u 代号(给仓库设置的代号)master(要推到那个分支)
推送 标签 git push -u 代号 标签
[root@git mycode]# git push -u test master
Username for 'https://github.com': 491537692@qq.com
Password for 'https://491537692@qq.com@github.com':
对象计数中: 3, 完成.
写入对象中: 100% (3/3), 200 bytes | 0 bytes/s, 完成.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/cashsunan/sunan.git
* [new branch] master -> master
分支 master 设置为跟踪来自 test 的远程分支 master。

git clone 克隆一个现有的仓库到本地

要到另一个服务器上实验
[root@git1 mycode]# git clone https://github.com/cashsunan/sunan.git master
正克隆到 'master'...
remote: Enumerating objects: , done.
remote: Counting objects: % (/), done.
remote: Total (delta ), reused (delta ), pack-reused
展开对象中: % (/), 完成.
检查连接... 完成。
[root@git1 mycode]# ls
master
[root@git1 mycode]# cd master/
[root@git1 master]# ls
test.txt
[root@git1 master]# git status
位于分支 master
您的分支与上游分支 'origin/master' 一致。
nothing to commit, working tree clean
[root@git1 master]# echo "xxx" >> test.txt
[root@git1 master]# touch exe.txt
[root@git1 master]# git status
位于分支 master
您的分支与上游分支 'origin/master' 一致。
尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git checkout -- <文件>..." 丢弃工作区的改动) 修改: test.txt 修改尚未加入提交(使用 "git add" 和/或 "git commit -a" 再次提交
[root@git1 master]# git add *
[root@git1 master]# git commit -m "wo cao "
位于分支 master
您的分支与上游分支 'origin/master' 一致。
尚未暂存以备提交的变更:
修改: test.txt 修改尚未加入提交
[root@git1 master]# git remote -v
origin https://github.com/cashsunan/sunan.git (fetch)
origin https://github.com/cashsunan/sunan.git (push)
[root@git1 master]# git push -u origin master
Username for 'https://github.com': @qq.com
Password for 'https://491537692@qq.com@github.com':
对象计数中: , 完成.
压缩对象中: % (/), 完成.
写入对象中: % (/), bytes | bytes/s, 完成.
Total (delta ), reused (delta )
To https://github.com/cashsunan/sunan.git
cc12e4d..5535cc9 master -> master
分支 master 设置为跟踪来自 origin 的远程分支 master。

将远程的仓库拉倒本地

在git上实验
[root@git mycode]# git remote -v
test https://github.com/cashsunan/sunan.git (fetch)
test https://github.com/cashsunan/sunan.git (push)
[root@git mycode]# git fetch -u test master
来自 https://github.com/cashsunan/sunan
* branch master -> FETCH_HEAD
[root@git mycode]# git status
位于分支 master
您的分支落后 'test/master' 共 个提交,并且可以快进。
(使用 "git pull" 来更新您的本地分支)
nothing to commit, working tree clean [root@git mycode]# git checkout
您的分支落后 'test/master' 共 个提交,并且可以快进。
(使用 "git pull" 来更新您的本地分支) 将远程仓库的变更合并到本地
[root@git mycode]# git merge test/master
更新 cc12e4d..5535cc9
Fast-forward
exe.txt |
test.txt | +++
files changed, insertions(+)
create mode exe.txt 将远程的仓库一步到位的更新到本地,
先在git服务器提交新的变化
[root@git mycode]# echo "adfasdf" >> exe.txt
[root@git mycode]# git add *
[root@git mycode]# git commit -m "2ci"
[master e770d42] 2ci
file changed, insertion(+)
[root@git mycode]# git push -u test master
Username for 'https://github.com': @qq.com
Password for 'https://491537692@qq.com@github.com':
对象计数中: , 完成.
压缩对象中: % (/), 完成.
写入对象中: % (/), bytes | bytes/s, 完成.
Total (delta ), reused (delta )
To https://github.com/cashsunan/sunan.git
5535cc9..e770d42 master -> master
分支 master 设置为跟踪来自 test 的远程分支 master 提交完成后在git1上直接pull拉取
[root@git1 master]# git pull origin master
remote: Enumerating objects: , done.
remote: Counting objects: % (/), done.
remote: Compressing objects: % (/), done.
remote: Total (delta ), reused (delta ), pack-reused
展开对象中: % (/), 完成.
来自 https://github.com/cashsunan/sunan
* branch master -> FETCH_HEAD
5535cc9..e770d42 master -> origin/master
更新 5535cc9..e770d42
Fast-forward
exe.txt | +
file changed, insertion(+)

git命令

git命令在本地仓库和暂存区的命令
文件的改名: git mv xxx yyy
撤销命令 :git reset 文件名
本地仓库文件和修改的工作区文件进行对比 :git diff 文件名 (-是删除+添加)
查看git的本地历史提交记录:git log
git log的参数 :git log - 最近2次提交的
git log -p - 显示每次提交的内容差异
git log --stat - :stat简要显示数据的增改行数,这样就能看到提交中修改过的内容
git log --pretty=oneline:一行显示提交的历史记录
本地回到上一个版本的命令 git reset --hard HEAD^
回滚到指定版本,git reset --hard 历史记录的编码号
回滚错了回复, git reflog : 查看历史的更新点. 里边有编码号,查到了编码号之间回滚
git reset --hard 历史记录的编码号
创建版本号
git tag 版本号
[root@git1 master]# git tag v1.
[root@git1 master]# git tag
v1.
查看版本的标签状态
[root@git1 master]# git show v1.
commit e770d42ad78a3f2a6892bd6ee39a2a78e5a6a119
Author: cashsunan <@qq.com>
Date: Sun Dec :: + 2ci diff --git a/exe.txt b/exe.txt
index e69de29..25975e2
--- a/exe.txt
+++ b/exe.txt
@@ -, + @@
删除标签
[root@git1 master]# git tag -d v1.
用标签回滚
[root@git1 master]# git reset --hard v2.
HEAD 现在位于 e770d42 2ci 已删除标签 'v1.0'(曾为 e770d42) 创建分支 git branch xx
查看分支 git branch
删除分支 git branch -d xx
强删分支 git branch -D xx
切换分支 git checkout xx
检查本地分支和远程分支是否相同 git checkout
暂存区是公用的,在工作之前要不就情况,要不就提交
合并分支
自动合并
在主支上 git merge 想要合并的分支
[root@git1 master]# git merge dev
更新 e770d42..ae291fe
Fast-forward
.txt |
quit | ++++++++++++
test.txt | +
files changed, insertions(+)
create mode .txt
create mode quit
[root@git1 master]# git branch
dev
* master [root@git1 master]# git push -u origin master
Username for 'https://github.com': @qq.com
Password for 'https://491537692@qq.com@github.com':
Total (delta ), reused (delta )
To https://github.com/cashsunan/sunan.git
e770d42..ae291fe master -> master
分支 master 设置为跟踪来自 origin 的远程分支 master。
[root@git1 master]# git status
位于分支 master
您的分支与上游分支 'origin/master' 一致

git提交忽略文件写法

gitignore文本忽略文件,
会创建以个隐藏的文件.gitingnore
写法
target
*.logt 表示忽略项目中所有以.log结尾的文件
?.idea表示忽略一个字符以.idea结尾的文件
/errt.log忽略根目录下的error.log文件
**/java/匹配所有java目录下的所有文件
!/error.log表示在前面的匹配规则中,被忽略的文件,不想被忽略,就加!

文件代码冲突解决办法
将git返回的代码的文件打开,二选一,删除一个就可以了

git 初始化只是当目录使用
git --brae init
克隆同样是子git的办法
git clone 账号@IP地址:路径
输入的密码是账号的密码,
也可以做个免秘钥
在家目录
ssh-keygen
ssh-copy-id-i ~./ssh/id_rs.pub 账号@ip

git的搭建与简单实用的更多相关文章

  1. .NET 跨平台RPC框架DotNettyRPC Web后台快速开发框架(.NET Core) EasyWcf------无需配置,无需引用,动态绑定,轻松使用 C# .NET 0配置使用Wcf(半成品) C# .NET Socket 简单实用框架 C# .NET 0命令行安装Windows服务程序

    .NET 跨平台RPC框架DotNettyRPC   DotNettyRPC 1.简介 DotNettyRPC是一个基于DotNetty的跨平台RPC框架,支持.NET45以及.NET Standar ...

  2. jenkins+git+maven搭建自动化部署项目环境

    简介    折腾了两个晚上,趁着今晚比较有空,把jenkins+git+maven搭建自动化部署项目环境搭建的过程记录一下,这里我把github作为git的远程仓库(https://github.co ...

  3. Git系列(1) Windows下Git服务器搭建

    作为对前两天Git服务器搭建的一个整理,我想分别从服务端和客户端两个角度来记录下整个搭建过程,为了达到目标,我们需要哪些操作. (一)服务端软件和账号的安装配置 我们这里只需要两个软件git和ssh, ...

  4. 基于jQuery简单实用的Tabs选项卡插件

    jQuery庞大的插件库总是让人欢喜让人忧,如何从庞大的插件库里挑出适合自己的插件,总是让很多缺少经验的朋友头疼的事!今天为大家推荐几款简单实用的Tabs选项卡插件,推荐理由:简单易用灵活,样式美观, ...

  5. Windows下Git服务器搭建[转]

    Windows下Git服务器搭建   作为对前两天Git服务器搭建的一个整理,我想分别从服务端和客户端两个角度来记录下整个搭建过程,为了达到目标,我们需要哪些操作. (一)服务端软件和账号的安装配置 ...

  6. git 入门教程之 git 私服搭建教程

    git 私服搭建教程 前几节我们的远程仓库使用的是 github 网站,托管项目大多是公开的,如果不想让任何人都能看到就需要收费,而且 github 网站毕竟在国外,访问速度太慢,基于上述两点原因,我 ...

  7. centos7下git服务器端搭建

    git的安装: yum 源仓库里的 Git 版本更新不及时,最新版本的 Git 是 1.8.3.1,但是官方最新版本已经到了 2.9.2.想要安装最新版本的的 Git,只能下载源码进行安装. 1. 查 ...

  8. 用开源 ASP.NET MVC 程序 Bonobo Git Server 搭建 Git 服务器(转)

    用开源 ASP.NET MVC 程序 Bonobo Git Server 搭建 Git 服务器   现在不用Git,都不好意思说自己是程序员. 当你想用Git,而源代码服务器是Windows系统时,你 ...

  9. 使用gitblit搭建一个简单的局域网服务器

    使用gitblit搭建一个简单的局域网服务器 1.使用背景 现在很多使用github管理代码,但是github需要互联网的支持,而且私有的git库需要收费.有一些项目的代码不能外泄,所以,搭建一个局域 ...

随机推荐

  1. fiddler配置及使用教程

    本文基于Fiddler4讲解基本使用 fiddler抓包原理 注意:Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888.当Fiddler退出的时候它会 ...

  2. Python3基础 生成器推导式 简单示例

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  3. USB Compound Device,USB复合设备 ; USB Composite Device,USB组合设备【转】

    本文转载自:https://blog.csdn.net/autumn20080101/article/details/52776863 科普下USB复合设备和USB组合设备的区别. 关键字 Commu ...

  4. Effective TensorFlow Chapter 4: TensorFlow中的广播Broadcast机制【转】

    本文转载自:https://blog.csdn.net/LoseInVain/article/details/78763303 TensorFlow支持广播机制(Broadcast),可以广播元素间操 ...

  5. BZOJ1304: [CQOI2009]叶子的染色 树形dp

    Description 给一棵m个结点的无根树,你可以选择一个度数大于1的结点作为根,然后给一些结点(根.内部结点和叶子均可)着以黑色或白色.你的着色方案应该保证根结点到每个叶子的简单路径上都至少包含 ...

  6. BZOJ1632: [Usaco2007 Feb]Lilypad Pond SPFA+最短路计数

    Description 为了让奶牛们娱乐和锻炼,农夫约翰建造了一个美丽的池塘.这个长方形的池子被分成了M行N列个方格(1≤M,N≤30).一些格子是坚固得令人惊讶的莲花,还有一些格子是岩石,其余的只是 ...

  7. Java异常类复习总结

    个人理解先行: 异常类是当在程序出现问题时抛出的一个警告.提示你程序设计或者代码有存在错误的地方. 异常类和Error都继承自Throwable, Throwable继承自Object类. Runti ...

  8. spring Boot启动报错Initialization of bean failed; nested exception is java.lang.NoSuchMethodError: org.springframework.core.annotation.AnnotatedElementUtils.getAnnotationAttributes

    spring boot 启动报错如下 org.springframework.context.ApplicationContextException: Unable to start web serv ...

  9. POJ 1029 False coin

    http://poj.org/problem?id=1029 题意: 在一堆硬币中有一个假硬币,重量是重是轻不知道.每次称量多个硬币,并给出称量结果.判断依据题目给出的几次称量结果能否找出假硬币. 思 ...

  10. hdu 5651 xiaoxin juju needs help 逆元 两种求解方式

    xiaoxin juju needs help Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/ ...