diff --git a/Git.md b/Git.md deleted file mode 100644 index 5b1aff3..0000000 --- a/Git.md +++ /dev/null @@ -1,216 +0,0 @@ -# Git(李明霞) - -我试了将本地分支同步到远程分支的操作。首先想到的是有没有啥快捷方式,然后就找到了这样的一条指令 - -> git push --set-upstream origin 分支名 - -但是并没有成功,出现了错误 - -``` -SSL certificate problem:unable to get issuer certificate -``` - -我查了一下是因为在通过HTTPS访问Git远程仓库时,如果服务器SLL证书未经过第三方机构认证,就会报错。(未知的没有签署过的证书意味着可能存在很大的风险。 - -solution->将git中的sslverisy关掉 - -``` -git config --global http.sslverify false -``` - -但是最终也没有解决这个问题,具体原因也还没有找到。 - -#### 一些一二阶段学习的感想 - -说实话,虽然已经大二了,但是我对目前这几天接触到的东西一无所知,Markdown、Typora、Git、Github...感谢Geek给我带来的改变,虽然我完成的并不好,但我可以感受到我这两天思考、时间管理方面的改变。 -1.关于Typora:使用起来很方便,我的感觉是比word更适合个人文件、笔记的整理,在设计分级标题、表情、强调方面有很大的优点,而且很美观,我觉得未来的我会爱上它的便捷与美观。 -2.Git学习:学习并不深入,只是简单学习了一些Git分支的指令及四个工作区域的简单了解。(时间安排问题,搜索资料、视频效率问题) - -## 版本控制 - -是一种在开发的过程中用于管理我们对文件、目录、工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前版本的软件工程技术。 - -> 版本控制特点: - -* 实现跨区域多人开发 -* 追踪和记载一个或多个文件的历史记录(前身后世的追溯) -* 组织和保护源代码和文档 -* 统计工作量 -* 并行开发、提高工作效率(方便代码合并) -* 跟踪记录整个软件的开发过程 -* 减轻开发人员的负担,节省时间,同时降低人为错误 - -常见版本控制工具:==Git==(分布式版本控制系统)、SVN(集中版本控制系统:受网络影响大、中央出问题的话,其他都会收到很大影响)、VSS... - -分布式版本控制系统特点:每个人都拥有全部的代码 - -> 如果每个人都有全部的代码, - -## Git历史 - -Linux、Git之父李纳斯在吸取了BitKeeeper的经验教训后,花两周左右的时间开发了自己的版本系统Git。(聪明人的时间与效率) - -Git是目前最先进的分布式版本控制系统。 - -## Git的版本回滚 - -> 以下内容没有全部实践过 - -### 情况一:未提交未push - -#### 变更文件 - -rollback操作(右键文件-Git-rollback) - -#### 新建文件 - -直接删除 - -### 情况二:提交但未push - -#### undo commit - -只适用于最后一次的提交 - -#### drop commit - -回滚任意一次的提交,且不留痕迹 - -#### revert commit - -会留下一条新的commit记录or一条revert记录 - -:crayon:drop 与revert在中间回滚可能会发生冲突 - -#### reset - -批量回滚 - -##### soft - -commit内容会保留,新增的内容被放在暂存区,文件的变更在暂存区 - -##### mixed - -commit内容会保留,新增的内容被放在工作区,文件变更在暂存区 - -##### ==hard== - -选定提交后面所有的更改全部都丢弃,包括暂存区与已提交内容 - -##### keep - -把选定提交之后的内容丢弃(commit文件会被删除),本地未提交内容得以保留(保留本地更改) - -### 情况三:提交且已push - -一般来说,Git都是保护远程的分支的已提交内容不被变更,即远程分支的基是不允许被改变的。想要回滚远程记录,就相当于让远程的基发生了变更,普通的Git push会被拒绝。 - -#### reset+forcr push - -### 情况四:找回代码 - -找回被roll back的代码 - -##### locial history-revert - -## Git基本理论-四个工作区域 - -> Git 本地有三个工作区域 - -* 工作区(Workspace):存放项目代码的地方。 - -* 暂存区(Stage):存放临时的改动,事实上它只是一个文件,保存即将提交到文件列表信息。 - -* 资源库(Repository):安全存放数据的位置,这里面有提交到所有版本的数据。其中 HEAD 指向最新放入仓库的版本。 - -> Git 远程有一个工作区域 - -* 远程库(Remote):托管代码的服务器,可以简单的认为是项目组中的一台电脑,用于远程数据交换。 - -![Git四个区域](https://img2022.cnblogs.com/blog/2002528/202202/2002528-20220219153109587-832668507.png) - -> Git的工作流程: - -1. 在工作目录中添加、修改文件 (UserMapper.xml) -2. 将需要进行版本管理的文件放入暂存区域 (git add.) -3. 将暂存区域的文件提交到Git仓库 (git commit) - -> 所以,Git管理的文件有三种状态:modified,staged,committed -> -> 颜色区分状态 - -## Git仓库搭建及克隆 - -### 本地仓库搭建 - -> 创建全新的仓库 git init - -![image-20221101220823632](../../AppData/Roaming/Typora/typora-user-images/image-20221101220823632.png) - -> 克隆远程仓库 git clone - -## Git分支 - -* 分支和main的关系就像是两个平行宇宙,如果两个区块互不干扰,就没有影响,但是如果需要将它们合并,我们就需要做一些处理。 - -> git分支中常用的分支命令 - -| 功能 | 指令 | -| :----------------------------: | :------------------------------------: | -| 列出所有本地分支 | git branch | -| 列出所有远程分支 | git branch -r | -| 新建分支,但依然保留在当前分支 | git branch [branch-name] | -| 新建分支,并切换到该分支 | git checkout -b [branch] | -| 合并指定分支到当前分支 | git merge [branch] | -| 删除分支 | git branch -d [branch-name] | -| 删除远程分支1 | git push origin --delete [branch-name] | -| 删除远程分支2 | git branch -dr [remote/branch] | -| 切换分支 | git checkout 分支名 | -| 本地分支->远程分支 | git push --set-upstream origin 分支名 | -| | | -| | | -| | | -| | | - -> 多个分支并行执行,我们的代码也不会冲突,也就是存在多个版本 -> -> 如果同一个文件在合并分支时都被修改了则会引起冲突。solution->修改冲突文件后重新提交 -> -> 体会:main分支应该要保证有极强的稳定性,用来发布新版本,一般不允许在上面工作,工作一般在新建的分支下,工作完成后,比如要发布或分支代码稳定后可以合并到main分支上(组合套装)。 - -#### 创建分支 - -1. 直接在Github上新建一个分支 -2. 开发工具New Branch -3. 右键项目-Git-Branches -4. 提交时,直接修改分支名 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -