Git 是分布式版本控制系统的核心工具,用于追踪文件变更、协调多人协作、保存代码历史快照。
Git是目前世界上最先进的分布式版本控制系统,在处理各种项目时都十分高效,而且非常的高大上。
作为一个分布式版本控制系统来说,Git是没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。例如我们一个小团队合作开发一个项目,我们可以先建立一个远程仓库,需求分析,搭建大体框架,将项目框架上传至远程仓库,队员可以git clone项目,各自完成自己负责的部分,完善项目等,写好之后还可以比对之前的版本,本地项目写好之后上传至远程仓库,出现错误还可以版本回退等等。
在 Git 中,三个核心区域构成了版本控制的核心框架,它们协同工作以实现精确的变更管理。
定位:本地磁盘可见的代码目录。
本质:开发者的实施编辑沙盒。
特点:所有的文件修改都在此处,状态通过git status查看。
定位:git目录下的二进制索引文件。
本质:提交前的精准快速缓存区。
特点:解决了提交半成品代码的痛点。
定位:项目根目录下的.git隐藏文件夹。
本质:版本数据库,用来存储提交历史。
Git 仓库(Repository)是 Git 版本控制系统的核心概念,用于存储项目文件及其完整版本历史。
仓库类型包括了本地仓库和远程仓库两种。
Git中的节点是版本控制的基础,通过提交对象记录项目状态,结合分支和HEAD指针实现高效的代码管理与协作。
节点的本质是提交对象,是版本的核心控制单元。
节点的组成有以下几部分:
1.树对象:指向当前快照的目录结构,记录文件的名称、权限和内容。
2.父节点:首次提交没有父节点,普通提交有一个,合并提交会有多个。
3.元数据:主要用来记录作者、提交者、时间戳和内容。
在Git中,分支(Branch) 是 指向提交节点(Commit)的轻量级指针,用于标记和管理不同的开发线路。其核心作用是允许开发者在并行线程中工作,而不会相互干扰。
Sourcetree 是一款由 Atlassian 开发的免费图形化版本控制客户端,主要用于管理 Git 和 Mercurial(Hg) 代码仓库。它通过直观的界面简化了版本控制操作。
首先,在电脑上建立一个文件夹,然后在软件内建立本地仓库,目标路径选择需要管理的文件夹路径,创建成功后,就可以对本地仓库进行管理。
仓库创建完成后,在软件上方即可选择刚刚创建的仓库,打开之后,就可以对本地仓库进行管理了。
软件新建仓库时选择克隆,将需要克隆的远程仓库链接填入进来,同时选择克隆的路径,确定之后即可将远程仓库克隆到本地。
在软件内找到和远程仓库关联的仓库,选择上方的获取可以获得远程仓库。
从远程仓库复制到本地文件,但不会合并。
软件内找到设置功能,添加远程仓库,进行关联。
当本地仓库变动时,文件状态部分会显示需要提交,提交时应当补充变动内容或者能让自己看懂的语句,提交后,可在提交历史查看。
重置是将本此更改内容取消的操作,本地修改过后,如果在软件的本地仓库内选择重置,则会对本地文件进行版本回退,回到修改前的版本。
在提交历史中选择需要回退到的版本,选择回滚提交,则会将版本回退到想要返回的版本。
对当前仓库想要进行其他操作,经常采用新建分支,新建分支可以在软件上面菜单栏点击创建,可以选择工作副本或者是新文件进行管理。
如果选择新建本地分支并对远程分支进行跟踪,可以选择在远程文件中检出新分支到本地。
合并分支指将多个分支进行统一,或者将分支的内容同步至其他分支。
合并分为平行合并和变基合并,平行合并会将分支的内容一次性挪到主干,变基合并会将分支的提交一个一个合并到主干。
软合并:将问题放到暂存区。
混合合并:若是分支领先,则直接提交,如果出现分叉,则会进行合并提交。
强制合并:强制生成合并提交。
激活master,选择要合并的支线,点击确定,将支线的所有变化的节点打包创建一个新节点合并过去。
master
)dev1
)右键选择分支,直接删除即可。
删除分支时如果该分支没有备份,则会提示警告。可勾选强制删除进行删除。
直接左侧分支双击即可或者选择检出分支。
多个分支修改同一文件,同时将多分支进行合并时,会显示冲突。
可以将他人传送到云端的内容拉取到自己的设备上面并合并。
将本地内容推送到远程仓库。
文件夹内手动添加.gitignore 文件或者点击设置,选择忽略项,可以将不想让仓库追踪的文件写入里面。
忽略文件主要有以下几种
.gitignore
中添加精确文件名,如 lalala.txt
,表示忽略该文件的所有更改。*.md
表示忽略所有 .md
结尾的文件。/name
表示忽略项目根目录下的 name
文件夹及其所有内容。停止跟踪(Stop Tracking)是指将文件从 Git 仓库的版本控制中移除,但不会删除本地文件。这意味着这些文件将不再被 Git 跟踪和管理,但它们仍然保留在你的本地文件系统中。
停止跟踪可以选择含有该文件的提交节点,点击上方操作,选择停止跟踪。
也可以在提交时右键提交文件,选择移除。
提交列表中找到想要创建补丁的提交,右键即可创建补丁。
补丁(Patch)在软件开发中是一个记录代码变更的文本文件,它本质上是两个代码版本之间的差异(diff)。它的核心作用是精确、轻量地传递代码变更。
应用补丁的四种情况:
1. 分支上的 1.txt
内容与补丁内容完全一致
2. 分支上的 1.txt
是空文件
+1
)会被完整地添加到空文件中。3. 分支上的 1.txt
内容与补丁内容部分一致
4. 分支中没有 1.txt
文件
1.txt
并写入补丁内容;如果补丁只修改文件而文件不存在,则应用失败报错。选择补丁文件,直接右键删除即可。
临时保存未提交的本地修改,让工作区恢复干净。但注意,应添加描述。
贮藏可以选择暂存器文件,也可以选择非暂存区的文件进行贮藏。
删除未提交的本地修改。
丢弃操作只能对本地已包括的文件的更新内容进行丢弃,对于新添加的文件,因为不包含在我们的本地仓库中,无法进行丢弃操作。
(途中丢弃操作灰色,将其添加到暂存区时,可以丢弃,但是丢弃的只是提交这个操作)
标记提交。
标签单击表示跳转到标签节点,双击表示当前资源管理器显示打了标签时的节点的内容。
右键删除标签即可。
检出节点可以分为检出本地分支和远程仓库分支
可以右键本地分支选择跟踪远程分支为无