git学习笔记

本文进一步介绍了git在本地进行项目版本管理的使用逻辑。
git并不是一个简单的代码上传和下载的工具,其核心功能在于其对代码版本的管理和快速恢复的功能,这对于新功能的开发非常友好,写了这么久代码第一次见到这个软件属实是惊艳到我了。我也不理解为什么学校的老师不给我们介绍这个工具。
git的可以理解为核心工作区的"文件群"管理,简单来说,任何被add的文件都会算进"文件群"里面,统一管理。要注意的一个问题就是,对于部分不需要版本追踪的文件,注意在任何分支和修改都不要加入工作区,否则会导致切换到旧的分支的时候该文件消失。
1、单一分支
首先,在项目文件夹进行初始化,然后添加文件到工作区,
|
|
然后就是往工作区添加文件。
|
|
如果下次需要更新追踪的文件的话,使用如下代码。(当且仅当追踪的文件没有增加,只有修改或者删除)
|
|
如果修改了想要回退到上一次保存的版本,使用下面代码(后面的".“可以替换为特定文件名)
|
|
也可以从某个特定提交恢复(abc134指提交的版本,可用git log
查看)
|
|
2、多分支管理
多分支的逻辑与单一分支基本一样,但多路线带来的问题在于分支的合并和切换。
首先是新分支的建立与切换
|
|
如果要查看当前分支所追踪的文件,可以使用git ls-tree -r HEAD --name-only
,其中HEAD表示当前分支的最新提交。如果要查看当前所有分支,可以用git branch
然后是分支合并的逻辑,这个逻辑在两路分支合并时会变得及其复杂,但如果是从master分支一路开出来的新分支然后再master分支使用merge命令git merge new
的话,基本就可以认为是把master分支覆写为新的分支。但如果是从master的历史节点分出来,然后修改的话,这个合并的过程就会变得极其复杂,对于一般个人的项目来说,也很少会有如此奇葩的管理需求,所以看心情,之后感兴趣的话就看看git的冲突合并逻辑到底怎么玩。开个第3小节