当前位置:   article > 正文

一文Git带你走进分布式版本控制系统并了解Git和SVN的区别_git svn

git svn

1、本博客主要参考尚硅谷的尚硅谷Git入门到精通全套教程(涵盖GitHub\Gitee码云\GitLab)视频教程,整理不易,还请读者见谅。

2、尚硅谷的有些视频还不错(PS:不是广告,毕竟看了人家比较好的教程,得给人家打个call)

3、视频地址:尚硅谷Git入门到精通全套教程(涵盖GitHub\Gitee码云\GitLab)


Git & SVN 的区别

  • Git 是分布式的,有本地和远程两个版本库,SVN是集中式,只有一个远程版本库
  • Git把内容按元数据方式存储,而SVN是按文件:因为,.git目录是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。.git目录的体积大小跟.svn比较,你会发现它们差距很大
  • Git没有一个全局版本号,而SVN有:目前为止这是跟SVN相比Git缺少的最大的一个特征
  • 刚开始用时很狗血的一点,SVN必须先Update才能Commit,忘记了合并时就会出现一些错误,git还是比较少的出现这种情况。

Git & SVN 命令区别

作用gitsvn
版本库初始化git initsvn create
clonegit clonesvn co(checkout)
addgit add (.除去.gitignore,*所有的文件)svn add
commitgit commitsvn commit
pullgit pullsvn update
pushgit push-
查看工作状态git statussvn status
创建分支git branch <分支名>svn cp <分支名>
删除分支git branch -d <分支名>svn rm <分支名>
分支合并git merge <分支名>svn merge <分支名>
工作区差异git differ (-cached / head)svn diff
更新至历史版本git checkout svn update -r
切换taggit checkout svn switch
切换分支git checkout branchsvn switch branch
还原文件git checkout - pathsvn revert path
删除文件git rm pathsvn rm path
移动文件git mv pathgit mv path
清除未追踪文件git cleansvn status sed -e

Git 使用

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目

版本控制

  • 版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。
  • 版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换

Git工作机制

  • Workspace:工作区,就是你平时存放项目代码的地方
  • Index / Stage:暂存区,,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
  • Repository:仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
  • Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

在这里插入图片描述

Git和代码托管中心

代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库

在这里插入图片描述

Git安装

官网地址:https://git-scm.com/

在这里插入图片描述

https://github.com/git-for-windows/git/releases/download/v2.37.3.windows.1/Git-2.37.3-64-bit.exe
  • 1

在这里插入图片描述

安装

可以观看的安装网站:https://blog.csdn.net/fzx1597965407/article/details/124371720

Git基本命令

命令名称作用
git config --global user.name 用户名设置用户签名
git config --global user.email 邮箱设置用户签名
git init初始化本地库
git status查看本地库状态
git add 文件名添加到暂存区
git commit m " 日志信息 " 文件名提交到本地库
git reflog查看历史记录
git reset hard 版本号版本穿梭
设置用户签名

在这里插入图片描述

设置登录的用户,这个只是标识而已

git config --global user.name 用户名
  • 1

设置登录的邮箱,这个只是标识而已

git config --global user.email 邮箱
  • 1

查看git的版本信息

git --version
  • 1

查看当前登录的用户

git config --global user.name 
  • 1

查看当前登录用户的邮箱

git config --global user.email
  • 1

在这里插入图片描述

这个用户指的是你当前使用的这个用户,在自己 C:\Users\用户\xxx 下有个 .gitconfig 文件,打开里面就是我们设置的用户签名

如果没有配置这个用户签名,否则没有办法可以提交代码,签名的作用是标识区分不同的操作者的身份的。注意:这里设置的用户签名和将来登录 GitHud(或者其他的代码托管中心)的账号是没有任何的关系的

初始化本地仓库

在这里插入图片描述

luoch@monster MINGW64 /e/app/test (master)
$ ll -a
total 8
drwxr-xr-x 1 luoch 197609 0 Oct  2 11:41 ./
drwxr-xr-x 1 luoch 197609 0 Oct  2 11:41 ../
drwxr-xr-x 1 luoch 197609 0 Oct  2 11:41 .git/
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

.git文件解释

任意文件夹中,用 git init 命令初始化仓库,即可在此文件夹下创建 .git 文件夹(.打头为隐藏文件夹,所以平时可能看不到)。这个文件夹之外的部分叫做工作区(Working Directory),.git 文件夹我们称做 Git仓库 (Git Repository)

介绍:https://developer.aliyun.com/article/716483

查看本地库状态

在这里插入图片描述

新建文件

在这里插入图片描述

在查看的时候,先保存!

在这里插入图片描述

在这里插入图片描述

添加到暂存区

添加暂存区

git add 文件名

git add 文件夹名/.      # 这个点代表这个文件夹下面的所有文件都添加进去

  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

提交本地库

提交

git commit -m "日志消息" 文件名
  • 1

在这里插入图片描述

修改文件

在这里插入图片描述

在这里插入图片描述

历史版本

查看日志消息

git reflog  # 查看版本信息
  • 1
git log    #  查看版本详细信息
  • 1

在这里插入图片描述

版本穿梭
git reset --hard 版本号
  • 1

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Git分支

  • 在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支
  • 使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行
  • 对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本
分支的好处
  • 同时并行推进多个功能开发,提高开发效率。
  • 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
分支的操作
命令名称作用
git branch 分支名创建分支
git branch -v查看分支
git checkout 分支名切换分支
git merge 分支名把指定的分支合并到当前分支上
查看分支
git branch -v
  • 1

在这里插入图片描述

创建分支
git branch 分支名
  • 1

在这里插入图片描述

切换分支
git checkout 分支名
  • 1

在这里插入图片描述

修改分支中的文件

在这里插入图片描述

合并分支

你如果想把 dev分支合并到 master分支,那你的指针应该指向 master分支上进行合并

git merge 要合并的分支名
  • 1

在这里插入图片描述

产生冲突

冲突产生的原因:

  • 合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。
  • 有两套完全不同的修改。 Git无法替我们决定使用哪一个。必须 人为决定新代码内容

我们首先在 master 分支的倒数第二行进行修改,并将其添加到暂存区,再提交到本地库

在这里插入图片描述

接着,我们去 dev 分支的倒数第一行进行修改,并将其添加到暂存区,再提交到本地库

在这里插入图片描述

之后我们在 master 分支上合并 dev 分支,发现产生冲突

在这里插入图片描述

解决冲突,在 master分支中修改冲突文件

在这里插入图片描述

在这里插入图片描述

代码托管中心

远程仓库操作
命令名称作用
git remote -v查看当前所有远程地址别名
git remote add 别名 远程地址起别名
git push 别名 分支推送本地分支上的内容克隆到本地
git clone 远程地址将远程仓库的内容克隆到本地
git pull 远程库地址别名 远程分支名将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并
跨团队协作

在这里插入图片描述

令狐冲请东方不败改代码,东方不败通过 fork 命令从岳不群的的远程库中拿取代码,再通过 clone 克隆命令到自己的本地库,修改完成后使用 push 推送到在自己的远程库,使用 Pull request 拉取请求给岳不群,岳不群审核完成后使用 merge 命令合并对方的代码到自己的远程库中,再通过 pull 命令到自己的本地库中,这样修改过后的华山剑法岳不群和令狐冲就都可以使用了

GitHud

GitHub 网址:https://github.com/

创建远程仓库

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

查看远程仓库地址
git remote -v          #查看当前所有远程地址别名
  • 1

在这里插入图片描述

创建远程仓库别名
git remote add 别名 远程地址                # 起别名
  • 1

在这里插入图片描述

推送本地分支到远程仓库
git push 别名 分支      或者     git push 别名
  • 1

在这里插入图片描述

在这里插入图片描述

去到GitHub进行观看

在这里插入图片描述

拉取远程库分支到本地库
git pull 别名 分支      或者     git pull 别名
  • 1

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

克隆远程仓库到本地

克隆不需要登录账号就可以克隆,除非对方的私有库,而且还没有把你拉进私有库

git clone 远程地址
  • 1

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

团队内协作

推送失败了,这是因为令狐冲还不是岳不群的弟子(仓库开发者)

在这里插入图片描述

现在岳不群在招弟子了,于是他想把令狐冲招进去(仓库开发者),于是他开启一套的流程

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

现在令狐冲是岳不群的弟子了(仓库开发者),于是它在push就可以了,而且令狐冲可以在自己的找可以看到岳不群的仓库的

在这里插入图片描述

跨团队协作

岳不群将仓库链接发个了东方不败,东方不败也进行fork到自己的账号中了

在这里插入图片描述

东方不败修改完代码后拉取请求

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

点击进去之后可以看到的,可以聊天也可以同意对方的请求

在这里插入图片描述

在这里插入图片描述

SSH登录

在这里插入图片描述

ssh-keygen -t rsa -C atguiguyueyue@aliyun.com
  • 1

在这里插入图片描述

cd .ssh/
cat id_rsa.pub
  • 1
  • 2

在这里插入图片描述

将钥匙放到账号中,在账号中找到设置

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Gitee

官网:https://gitee.com/

创建仓库

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

删除仓库

在这里插入图片描述

IDEA 集成 Git
配置Git忽略文件

在用户家(C/User/用户名) 下创建 git.ignore

# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (
.mtj.

# Package Files
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see
http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

.classpath
.project
.settings
target
.idea
*.iml
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

在 .gitconfig 文件中引用忽略配置文件(.gitconfig 在家目录中)

[core] excludesfile = C:/Users/xxxxx/git.ignore
  • 1

在这里插入图片描述

IDEA初始化本地库

在这里插入图片描述

使用IDEA初始化 git项目,初始化之后我们可以用文件夹看到 .git文件夹,前提是你开了可以看隐藏文件

在这里插入图片描述

IDEA添加到暂存区

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

将所有的添加完了,现在我们要做的是提交文件

在这里插入图片描述

在这里插入图片描述

IDEA切换版本

在这里插入图片描述

IDEA创建分支和切换分支

第一种创建分支的方法

在这里插入图片描述

在这里插入图片描述

第二种创建分支的方法,点一下也是可以创建得

在这里插入图片描述

点击了 new branch

在这里插入图片描述

切换分支

在这里插入图片描述

IDEA合并
正常合并

在这里插入图片描述

在这里插入图片描述

切换成 master 分支了

在这里插入图片描述

在这里插入图片描述

冲突合并

现在 master 和 hot-fix分支都是一样得代码,现在 hot-fix修改了代码

在这里插入图片描述

提交成功之后,切换分支到master,如果到了master分支直接就是合并那肯定是正常合并得,所以我们在合并之前也在master修改代码

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

IDEA 集成 GitHud
IDEA登录 GitHud

在这里插入图片描述

idea登录githud(1)

在这里插入图片描述

idea登录githud(2)

在这里插入图片描述

获取githud令牌

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

IDEA将项目分享GitHud上

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

push推送本地库到远程库

第一种 push

在这里插入图片描述

第二种 push

在这里插入图片描述

push

在这里插入图片描述

远程端仓库

在这里插入图片描述

pull拉取远程库到本地库

注意:push是将本地库代码推送到远程库,如果本地库代码跟远程库代码版本不一致,push的操作是会被拒绝的。也就是说, 要想 push成功,一定要保证本地 库的版本要比远程库的版本高! 因此一个成熟的程序员在动手改本地代码之前,一定会先检查下远程库跟本地代码的区别!如果本地的代码版本已经落后,切记要先 pull拉取一下远程库的代码,将本地代码更新到最新以后,然后再修改,提交,推送!

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

clone克隆远程库到本地库

删除现在得项目

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

IDEA 集成 Gitee

在这里插入图片描述

在这里插入图片描述

将项目分享到gitee上

在这里插入图片描述

push项目

在这里插入图片描述

pull项目

在这里插入图片描述

复制GitHud项目

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

强制更新

githud上面得代码发生了修改

在这里插入图片描述

在这里插入图片描述

凭证管理器

在这里插入图片描述

Git速查表

在这里插入图片描述

在这里插入图片描述

SVN 使用

SVN的全称是Subversion,SVN是一个跨平台的开源的版本控制系统,svn版本管理工具管理着随时间改变的各种数据,这些数据放置在一个中央档案库(repository)中,svn会备份并记录每个文件每一次的修改、更新、变动。这样可以把任意一个时间点的档案恢复到想要的某个旧的版本,可以查看指定文件的更新历史记录。

官网地址:https://tortoisesvn.net/

SVN工作原理

在这里插入图片描述

我们使用SVN能做什么?

  • 多人共享同一的资源,并且可以对资源实现修改和更新。
  • 记录资源的每一次变更,以及记录更改该资源的人,并且可以恢复到之前的任何一个修改点。

SVN安装

SVN的安装分为 2 部分,第一部分是服务端安装,第二部分的客户端安装。

注意:一般情况下,我们只需要安装客户端即可,因为在企业中服务端是由运维来维护的,我们只需要开通一个账号即可。

常用的客户端又分为两种:安装在操作系统中的客户端、Eclipse的插件。

服务端安装

官网:https://www.visualsvn.com/

在这里插入图片描述

在这里插入图片描述

下载地址(64-bit):https://www.visualsvn.com/files/VisualSVN-Server-5.1.1-x64.msi

下载地址(32-bit):https://www.visualsvn.com/files/VisualSVN-Server-5.1.1-win32.msi

下载过后得样子

在这里插入图片描述

开始安装

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

客户端安装

官网:https://www.visualsvn.com/visualsvn/download/

在这里插入图片描述

下载地址(64-bit):https://www.visualsvn.com/files/TortoiseSVN-1.14.3.29387-win32-svn-1.14.2.msi

下载地址(32-bit):https://www.visualsvn.com/files/TortoiseSVN-1.14.3.29387-x64-svn-1.14.2.msi

下载过后的样子

在这里插入图片描述

开始安装

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

点击右键查看是否有SVN选项

在这里插入图片描述

其他人的教程

TortoiseSVN安装中文语言包教程:https://blog.csdn.net/qq_61771146/article/details/124466992

高效开发 — SVN使用教程图文详解:https://blog.csdn.net/zhanghuaishu0/article/details/78487628

Windows10环境下使用VisualSVN server搭建SVN服务器:https://blog.csdn.net/qq_32786873/article/details/80535567

SVN安装及使用教程图文详解:https://blog.csdn.net/Ruishine/article/details/121467191

B站:https://www.bilibili.com/video/BV1mW411M7yR/?p=1

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/670156
推荐阅读
相关标签
  

闽ICP备14008679号