| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> git实操项目学习之三大特点 -> 正文阅读 |
|
[开发工具]git实操项目学习之三大特点 |
关于git的学习,我之前的博客中也有总结:比如Windows下通过图形界面上传代码到git,GitHub学习以及遇到问题的详解这两篇文章,以及看到的文章IDEA版本控制VCS中git的使用也写的很棒。 1.git常用命令2.git工作区域下图是git的工作区域划分,以及各个区域之间的联系(借鉴图) 由上图我们可以看到,git的工作区域分为:工作区,暂存区,本地仓库区,远程仓库区 工作区- workspace:即我们项目的根目录,也是我们存放代码的地方。 暂存区- index/stage:在我们项目的.git目录下有一个index文件,是一个包含文件索引的目录树用于记录文件的变化。当我们代码有改动但不想push时,我们可以选择add到暂存区。我们工作区的代码在提交push/回滚reset时,也会优先选择暂存区的内容进行操作。 本地仓库区- repository:也叫本地版本库是.git目录存在的位置。当我们执行commit命令后,暂存区的目录树会写到版本库中(最终存储在分支branch)。这里安全的存放你提交到所有版本的数据,其中HEAD指向最新放入仓库的版本。 远程仓库区- remote:托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换。 3.git三大特色之 stage暂存区从工作区域图中,我们可以看到代码add后保存在了暂存区,那么保存在暂存区有什么好处呢?这个stage不知道也罢,理解以后发现真精彩。它能帮助我们很容易的解决以下场景的问题: 1)git第一次执行commit时报错。因为git提交的内容是暂存区内容,当我们只有工作区改变而未add到暂存区时,版本库与暂存区内容实际是一致的,也就是说我们此次提交操作是无效的。所以git在使用commit将代码提交到版本库时,必须要先add到暂存区,确保此次要提交的操作是有意义的。 2)若当前分支A做出修改代码的操作但并未达到可提交状态,可是此时需要切换分支B做其他事情;若我们直接切换分支B,会提示有修改的代码未提交,那么只能选择提交或者舍弃;此时我们就可以先将A分支代码备份(git stash),待B分支事情做完后,再切回A分支并从缓存中取出文件(git stash pop)继续操作。这样我们之前写的代码仍然可以恢复到工作区,避免了将未完成代码提交造成系统报错或者舍弃了代码需要重复编程。 3)我修改到一半的文件,突然不需要修改了,怎么恢复到修改前的代码呢?我们可以直接切换分支checkout(force)操作或者从暂存区取出上次的内容覆盖当前工作区(git reset --soft)。 4)修改了4个文件,在不放弃任何修改的情况下,其中一个文件不想提交,如何操作?没做add的文件先git add,若不提交的文件已经add了就使用git reset --soft恢复到工作区,此时再用push即可正确提交文件。
git add与git stash区别:二者都可以保存工作区修改的内容
git stash pop 与git stash apply区别:
放弃本地修改的内容,强制更新代码:
git 三大特色之 brabch分支分支存储自己的代码是轻量且易操作的,同时因为有分支的存在,git才构成了多工作流的特色。多分支的存在是必要的,因为在工作中,一个项目往往会有多个人进行操作,如果大家都直接在master分支上操作,那么最后难免会出现两个人写了同一个部分代码导致被互相覆盖或者某一个人的代码本身有问题导致系统无法正确运行,整个系统可能随之挂掉,这问题就很大了。但若我们每个人都单独拉一个分支进行操作,就不会出现上述问题,即使自己分支的代码死循环也不会影响整个项目的运行,这就保证了多人同时工作时的效率。 关于分支操作的命令并不多,除了基础的增删改查,还有一个比较重要的操作就是合并。 1)创建分支(先选择基础分支再执行命令):git branch 2)查看分支:git branch – 查看本地分支 ; git branch -r - 查看远程分支 ; git branch -a - 查看本地+远程所有分支 ; 3)删除分支:git branch -d <name /-D 表示强制删除 ; git push origin: <name– 删除远程分支 ; 4)重命名分支:根本不存在!!回到基础分支再用新名字重新创建分支(git branch <new name),删除之前的分支(git branch -d <old name ),“重命名”即可完成了; 5)签出分支:git checkout <name – 本质是移动head指针;git checkout -b <branch name - 以当前分支为基础,创建新的分支并签出 ; 6)合并分支:git merge <name – 将name分支合并到当前分支上 ; branch分支合并:
分支回滚很重要:
reset和revert的区别:代码回滚的命令
git三大特色之 WorkFlow工作流工作流顾名思义就是工作流程,也叫分支管理策略。这里不涉及任何命令,因为它只是一个规则,项目开发者默认遵循使得git使用更高效。比如前面讲到分支合并时说的问题,若开发者没有一个好的规范习惯,那么git管理等同虚设。目前使用最多的工作流有三种: 1)git flow:主要分支(master + develop),协助分支(feature branch + release branch + hotfix branch) 2)github flow:只有一个长期分支 master ,而且 master 分支上的代码,永远是可发布状态,一般 master 会设置 protected 分支保护,只有有权限的人才能推送pull代码到 master 分支。 3)GitLab flow:GitLab 既支持 Git Flow 的分支策略,也有 GitHub Flow 的 Pull Request 和 issue tracking功能,是非常有优势的工作流。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 6:04:25- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |