湛江个人网站建设,使用的是什么网站模板,网站代理游戏,成都设计公司装修背景
项目开发过程中使用的版本控制工具是 SVN#xff0c;Git 多有耳闻#xff0c;以前也偶尔玩过几次#xff0c;但是工作中不用#xff0c;虽然本地也有环境#xff0c;总是不熟练。
最近看一本网络开源技术书时#xff0c;下载源码部署了一下#xff0c;又温故了一…背景
项目开发过程中使用的版本控制工具是 SVNGit 多有耳闻以前也偶尔玩过几次但是工作中不用虽然本地也有环境总是不熟练。
最近看一本网络开源技术书时下载源码部署了一下又温故了一下 Git 的用法思考一个问题如果现在我们的版本控制工具从 SVN 转换到 Git我能不能直接上手呢
本文汇总一下 Git 的基础知识和转换需要的基本流程要上手也是没问题资料来源于网络说实话资源真是多啊如果真要换 Git 现学现用足够了。
Git 原理
Git 是什么Linux 的源代码版本控制工具在 BitKeeper 收费后该团队自己开发的一个版本控制工具。Git 和 SVN 的区别是什么存储方式不同。 Git 存储的是全量快照 途中的虚线是指相对上个版本没变化的文件那么它就只存储一个指向上个版本的指针其他变化的文件作为本版本的文件。而 SVN 保存的差异信息 版本 V2 记录了相对 V1的增量变化内容。
Git 的基本思想
分布式版本控制工具每个主机上的本地仓库都是一个节点commit 也只是提交到本地仓库的然后通过 push 到原创共享仓库。直接记录快照而非差异比较。近乎所有的操作都在本地执行除了推送操作外。时刻保持数据的完整性。多数操作都是添加数据的操作。文件的三种状态CMS「客户管理系统缩写记住它们」Commit、Modified、Stated
Git 操作
Git 的常用操作
git initgit clonegit addgit commitgit pullgit fetch 与 git pull 的区别是不会自动合并用于需要人工比对差异的情况然后再手动执行 merge。相当于查看变动如果没有冲突或者没有问题就可以直接执行 pull 拉取操作了。git pushgit loggit statusgit config
Git 的换行配置
LFline feed单个字符\nLinux 下的换行符号含义换行。CRLFcarriage return line feed回车换行两个字符\r\nWindows下的换行符号。
LF 和 CRLF 的历史遗留故事Windows 操作系统和 Linux 操作系统的差异为版本控制带来的问题。
解决办法是配置 core.autocrlf。
true 最初的换行符号提交到 Linux 上了都是 LF但是下载到本地的时候自动转换为 CRLF为了 Windows 系统而推荐的配置。
input所见即所得适合 Linux 和 macOS。
结论就是在 Window 主机上的配置应该为 true 自动处理行尾在 Linux 或 MAC 上设置为 input 所见即所得本地获取时不处理行尾。
SVN 日常操作
本地使用的 SVN 工具是 SnailSVN日常基本操作有
检出更新提交查看日志变更比对
Git 工具
Git 的也有图形化工具 SourceTree界面很清爽对比 SVN 的日常操作有这个工具就够了尤其是它能直接在界面上显示待提交的文件变化 这个功能太好了尤其是我在 SVN 使用的时候都是在文件目录下逐个对比差异的。
直接找到 SourceTree 的工程路径然后在 IDEA 中打开就可以了所有的修改状态自动对应到当前选中的分支上。
论工具的使用本人还是属于熟练工的一种吧各种技术、工具啊真的是够多的像我这种只会用工具、抽象创造力匮乏的人算不上科技人才吧妥妥的工具人
启示录
IDEA 里面有 Git 的工具了SourceTree 都省了。不过分开有个好处就是IDEA 里面专注代码编写SourceTree 里面专注代码提交。
最后还有一个疑问Git 分支切换过程中被导入 IDEA 中的项目源码会自动跟着切换吗我可不可以一边对分支 A 编码一边再切换到分支 B 呢
Git 有一个限制分支切换时需要决定在当前分支上的修改内容是否需要提交如果选择忽略改动的话所有文件的修改就被丢弃。
就是说分支可以随便切但是必须决定如何处理本地变更。
回顾一下 SVN 的分支管理创建新分支导出项目源码到本地导入到 IDEA开发。创建的分支越多就需要重复执行代码检出操作占据的磁盘空间就会堆积越多。开发过程中不同分支直接的切换操作也很麻烦。对比来看Git 的分支管理确实很方便。
最后一个疑问一个 Git 库下所有分支的代码是共用同一份源代码的磁盘空间的吗SVN 的不同分支检出来源码都是独占一份磁盘空间的Git 是这样的吗感觉 Git 不同分支的源码存储空间跟 SVN 不一样的但是没找到说明依据。