Git版本管理

Git

Git: 十分简单!!!Github版本控制

版本控制(Revision control)是一种在开发中的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便于恢复以前的版本的软件工程技术

  • 实现扩区域多人协同开发、
  • 追踪和记录一个或者多个文件的历史记录
  • 组织和保护你的源代码和文档
  • 统计工作量
  • 并行开发,提高开发效率
  • 跟踪记录整个软件的开发过程
  • 减轻开发人员的负担,节省时间同时降低人为错误

简单的说就是用于管理多人协同开发项目的技术

没有进行版本控制或者版本控制本身缺乏正确的流程管理,在开发软件的过程中会引入很多的问题,如软件代码的一致性,软件内容的冗余,软件过程的事物性,软件开发过程中的并发性,软件源代码的安全性,以及软件的整合等问题

解决方案1

解决方案2

解决方案3

解决方案4

最终方案1

最终方案2

最终方案3

最终方案4

无论是工作还是学习,都经过这样一个阶段! 我们迫切需要一个版本控制工具

多人开发必须要使用版本控制,不然的话可能会花比较大的代价

常见的版本控制工具

我们学习的东西一般都是当下最流行的

主流的版本控制器,有一下的这些:

  • Git
  • SVN(Subversion)
  • CVS(Concurrent Version System)
  • VSS(Micorosoft Visual SourceSafe)
  • TFS(Team Foundation Server)
  • Visual Studio Online

版本控制的产品非常的多(Perforce)等

最大的好处就是分布式版本控制

GIt和SVN的区别

git是分布式的版本控制

svn是集中式的版本控制

Git可以直接看到更新了那些代码和文件操作Git是目前最新进的版本控制

Git环境配置

所有东西下载慢的话一般都可以去找镜像

下载地址:http://npm.taobao.org/mirrors/git-for-windows

卸载Git

1.直接反安装即可 清理环境变量

2.卸载

安装

无脑下一步即可

启动Git
在这里插入图片描述

Git Bash:Unix与linux风格的命令行,使用最多推荐最多

Git CMD:windows风格的命令行

Git GUI:图形界面的Git 不建议初学者使用,尽量先熟悉常用的命令

Git基本的linux命令学习 平时一定要多使用这些基础的命令

  • cd : 改变目录
  • cd … :回退到上一级目录
  • pwd : 显示当前所在的目录
  • ls(ll):都是列出当前目录中的所有文件只不过后面的列出的内容更为详细
  • touch: 新建一个文件,如touch index.js 就会在当前目录下新建一个index.js文件
  • rm: 删除一个文件 如 rm index.js
  • mkdir: 新建一个目录,就是新建一个文件夹
  • rm -r: 删除一个文件夹
  • mv: 移动文件
  • reset: 重新初始化终端
  • clear : 清屏
  • history: 查看历史命令
  • help:帮助
  • exit: 退出 # 表示注释
  • rm -rf / 切勿在linux里面尝试 删除电脑的全部文件

Git配置 环境变量只是为了全局使用而已 默认会帮你配置

所有的配置文件其实都保存在本地

查看配置git config -l
在这里插入图片描述

系统的配置git config --system --list
在这里插入图片描述

在这里插入图片描述

查看本地的配置git config --global --list

在这里插入图片描述
在这里插入图片描述

配置邮箱 必须要配置的

git config --global user.name "Timous"
git config --global user.email "1844736251@qq.com"

Git理论(所有的时间都要源于这个理论)

工作区域

Git本地有三个工作区域: 工作目录, 暂存区,资源库。如果在加上远程的Git仓库,就可以分为四个工作区域,文件在这四个区域之间的转换关系如下:
在这里插入图片描述

工作路径: 写代码的空间

暂存区: 就是一些文件,基本看不到

Repository: 本地的代码库

Remote: 远程仓库

  • github
  • gitee

.git隐藏文件夹

在这里插入图片描述

Git项目搭建

创建工作目录与常用的指令

工作目录一般就是你希望Git帮助你管理的文件夹,可以是你的项目的目录,也可以是一个空的目录,建议不要有中文,日常只需要记住以下的6个命令

在这里插入图片描述

本地仓库搭建

创建本地仓库的方法有两种,一种是创建全新的仓库,另一种是克隆远程仓库

1.创建全新的仓库,需要Git管理的根目录执行

# 在当前目录创建一个新的Git代码库

$ git init
Initialized empty Git repository in D:/environment/gitcode/.git/

在这里插入图片描述

2.克隆一个远程的仓库到本地

git clone [url]  # 克隆一个远程的地址的

Cloning into 'openclass'...
remote: Enumerating objects: 272, done.
remote: Counting objects: 100% (272/272), done.
remote: Compressing objects: 100% (182/182), done.
remote: Total 272 (delta 98), reused 119 (delta 68), pack-reused 0
Receiving objects: 100% (272/272), 13.41 MiB | 1.54 MiB/s, done.
Resolving deltas: 100% (98/98), done.

在这里插入图片描述

这个文件夹就是我们的远程的仓库克隆下来的地址

查看文件的状态

文件有四种状态,通过下面的命令可以有

git add .             # 添加所以文件到暂存区
git status [filename] # 查看文件的状态
git commit -m "要备注的信息"        # 提交暂存区的内容到本地仓库  -m 提交信息

忽略文件

前端项目的总npm_moudels

有些时候我们不想把某些文件纳入版本控制中,如数据库文件,临时文件,设计文件等

在主目录下建立.gitignore文件,此文件有如下的规则:

  • 忽略文件中的空行或者以#开始的行会被忽略
  • 使用linux通配符,例如*代表任意多个字符 ?代表一个字符 []代表可选字符范围{} 代表可选字符串范围
  • 如果名称的最前面有一个!,表示例外规则,将不被忽略
  • 如果名称前面是一个/表示要忽略的文件在此目录下,而子目录中的文件不被忽略
  • 如果名称的后面是一个/表示忽略的是此目录下该名称的子目录,而非文件
# 为注释
*.txt       # 忽略所有.txt结尾的文件
!lib.txt   # 但lib.txt除外
/temp       # 仅忽略项目根目录下的TODO文件,不包括其他的temp
build/      # 忽略build/目录下的所有文件
doc/*.txt   # 会忽略  doc/*.txt  但是不包括  doc/server/arch.txt

.gitignore文件

*.class
*.log
*.lock

#    Package Files    #
*.jar
*.war
*.ear
target/

#idea
.idea/
*.iml

*velocity.log*

###    STS    ###
.apt_generated
.factorypath
.springBeans

###    Intellij  IDEA    ###
*.iml
*.ipr
*.iws
*.idea
.classpath
.project
.settings/
bin/


*.log
tmp/

#rebel

*rebel.xml*

使用码云

github是有墙的,比较慢,在国内的话一般使用gitee gitlab

未来找工作的个人东西

设置本机绑定ssh公钥,实现免密登录

进入 ssh-keygen -t rsa

在这里插入图片描述
在这里插入图片描述

使用码云创建自己的仓库

许可证开源是否可以随意转载 ,开源不能商业使用,不能转载,限制

在这里插入图片描述

git clone https://gitee.com/timou_top/java-project.git克隆到本地

使用IDEA集成Git

1.新建项目,绑定git

  • 将我们的远程git文件目录拷贝到项目中即可

2.修改文件使用idea操作git

  • 添加到暂存区
  • commit提交
  • push到远程仓库

3.提交测试

在这里插入图片描述

上面都是单个人的操作

说明:Git分支

# 查看所有的分支
git branch

# 查看远程所有的分支
git branch -r

# 新建一个分支,但是依然停留在当前分支
git branch [branch-name]

# 新建一个分支,并切换到该分支
git checkout -b [branch]

# 合并指定分支到当前分支
git merge [branch]

# 删除远程仓库分支
git push origin --delete [branch-name]
git branch -dr [remote/branch]

我们多个分支如果并行执行,会导致我们代码不冲突,也就是同时存在多个版本!!!!

web-api A(Restful.xxxx())

web-admin B 可能调用A 修改了A的代码

web-app C 可能会调用B和A的代码

冲突了协商即可

如果在同一个文件在合并分支的时候都被修改了,则会引起冲突:解决的办法就是我们可以修改冲突文件后重新提交!

master主分支应该非常稳定,用来发布新的版本,一般情况下不允许直接在上面工作,工作上的一般建立在dev上面,工作完之后,比如要发布,,或者说dev分支代码稳定之后可以合并到master上面来。

在这里插入图片描述

注意:找人一起搭建一个远程仓库,联系git,两个人或者是三个人都可以练习

团队很重要

寻找小伙伴

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值