You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1milletnote/Git.md

7.1 KiB

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记录

🖍️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四个区域

Git的工作流程

  1. 在工作目录中添加、修改文件 (UserMapper.xml)
  2. 将需要进行版本管理的文件放入暂存区域 (git add.)
  3. 将暂存区域的文件提交到Git仓库 (git commit)

所以Git管理的文件有三种状态modifiedstagedcommitted

颜色区分状态

Git仓库搭建及克隆

本地仓库搭建

创建全新的仓库 git init

image-20221101220823632

克隆远程仓库 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. 提交时,直接修改分支名