1、git 和svn
Git 和 SVN 都是版本控制系统,它们都用于管理代码的版本,但它们之间有一些显著的区别:
- 分布式 vs 集中式:Git 是一个分布式版本控制系统,这意味着每个开发者都拥有整个代码库的完整副本,并且可以在本地进行提交、分支和合并操作,不需要连接到中央服务器。SVN 是一个集中式版本控制系统,它依赖于一个中心服务器来存储代码库,开发者需要连接到这个服务器才能进行版本控制操作。
- 离线工作:由于 Git 是分布式的,开发者可以离线工作,即在没有网络连接的情况下进行提交、分支和合并。SVN 在没有连接到中心服务器时,功能会受到限制。
- 速度:Git 的速度通常比 SVN 快,尤其是在处理大项目和大量文件时,因为 Git 使用了一种称为“快照”的技术,只记录文件的更改,而不是整个文件的新版本。
- 分支和合并:Git 对分支和合并的支持非常强大,它允许开发者轻松地创建、合并和删除分支。SVN 的分支和合并功能也可用,但通常被认为不如 Git 直观和高效。
- 历史记录:Git 的历史记录是分布式的,每个开发者的本地副本都包含了完整的历史。SVN 的历史记录则存储在中心服务器上。
- 安全性:Git 提供了更多的安全特性,如数字签名和加密。SVN 在这方面的支持相对较弱。
- 社区和使用:Git 在开源软件开发社区中非常流行,是许多开发者首选的版本控制系统。SVN 也有广泛的使用,尤其是在企业环境中。
选择 Git 还是 SVN 取决于你的具体需求和项目的特点。Git 更适合那些需要分布式协作、频繁分支和合并以及快速版本迭代的项目。SVN 对于那些更依赖于集中式控制、简单的访问管理和不需要离线工作的项目可能更适合。
2.Git 的安装:
linux下git的安装与使用_linux 安装git-CSDN博客。
3.Git 的使用和原理
模拟和使用。
1. 克隆 git clone +地址。
2把远程代码拉到本地,自动创建了两个东西
(1).origin 远程仓库名 git remote 查看 。
(2)本地仓库。 生成了一个主干分支 => master 分支。git branch
3. git 工作区 :本地仓库的代码目录
git log 查看当前分支的修改记录4. git status 会查看工作区已经修改但是未添加到库里面的代码。
5. 设置信息:
git config --global user.name 'wang jingbin'
git config --global user.email 'wnagjingbin@163.com'
6.修改代码之后:
git add . 或者添加指定的文件 如git add 01.cpp 等
git add:将工作区的代码改动,提交到暂存区里面。
git commit -m "创建暂存区"
git 本地仓库: git 工作区 ->git add 暂存区里面去 ->git commit 将本地仓库的改动提交到代码分支上了(master)(注意使用
git 命令需要在.git 同级目录下才可以) --> git push origin master:master(本地名称和远程名称一样 可以简写为
git push origin master) 将本地仓库代码push 到远程代码分支。
另外一个人可以使用 git pull 可以拉取更新后的代码。
git checkout 分支名 切换分支。
git 的使用原理图
7.回退操作。(1)在添加git add . 之前:使用git checkout -- . (fileName) 实际就是用本地仓库的代码,把当前工作区的覆盖掉。
(2)在git add . 之后,已经把工作改动添加到暂存区了,但是在git commit 之前:使用:
git reset HEAD (全部或者某个文件)
可以取消暂存区域的修改。
(3)在远程之前,在git commit -m "" 之后。使用
git reset --hard id(commit_id)
每个 commit 有一个head 指针,移动了head 指针。git reflog 查看之前的操作。
(4)已经通过git push origin master 了。
方法一:git pull 拉下来最新代码,之后再重新修改更新方法二:在本地仓库找到修改之前的(git reset --hard id),修改重新提交。(直接修改不行,只有本地仓库领先于
远程仓库才可以 git push origin master)。
需要强制 git push origin master -f
git 原理图
4.vscode 下使用git
(1)当年打开本地包含.git 的文件时候,vscode git 自动打开。
(2)changes 相当于 git status 操作,查看当前哪些文件做了修改,
(3)同时,打开(xxx.working Tree)会显示两份文件,修改前后的对比和区别
这里Stage Changes 相当于git add . 操作,把工作区添加到暂存区
添添加到本地master 分支上,相当于git commit -m ""。
点击会让你输入更信息 相当于git commit -m "" 引号内的信息。
(4)点击commit
注意此时会有一个问题,导致commit 一直再旋转,无法加到本地。 此时先保存好文件,再关掉vscode。
重新打开 vscode,
打开设置 ->settings -> 搜索 use editor ->找到use editor as commit 取消勾选。即可。
(5) 同步到gitee 或者github 远端仓库
即可 ,当然第一次需要用户名称和密码或者设置了ssh 密令,字节输入一下输入一下就好。
(6) 验证 登录到自己的gitee 或者github 查看文件是否更新。
同时git 终端操作和vscode 界面是同步的。使用vscode 界面更快,更方便一些。