1、仓库创建
1)创建一个空文件做作为代码存储仓库
2)右键→选择“在此处创建仓库”
选择OK
弹出“在路径F:\30_git\02_new初始化空仓库”完成对话框,说明仓库创建并初始化完成。
此时在原来的空路径下,生成.git文件夹。
.git文件夹是git init后在当前目录生成的一个管理git仓库的文件夹,这里包含所有git操作所需要的东西。
2、master分支创建
master分支是仓库创建完成时,git自动创建的分支,分支名称为master。
- master所在的位置,为该分支的指针位置;
- HEAD指针指向的是当前快照位置,即当前文件目录对应的commit记录;
- 一般情况下,分支指针master和HEAD指针指向同一位置。
如下图所示:
- 红色的master表示当前的master分支位置;
- 黑色加粗表示当前的HEAD指针位置,即当前文档目录对应的commit记录;
- master指针和HEAD指针指向同一位置;
如下图所示:
- 红色的master表示当前的master分支位置;
- 黑色加粗表示当前的HEAD指针位置,即当前文档目录对应的commit记录;
- master指针和HEAD指针指向不同位置,此时HEAD处于游离状态;
3、程序/文档commit(上传)
1)新建一个空文件夹
2)右键→“Git Commit -> “master” …”
提示上传成功。此时文档上传到本地仓库,由于没有建立远程仓库,因此不需要执行Push操作,直接Close即可。
创建一个非空文档,然后执行上述commit操作。
提示上传成功。此时文档上传到本地仓库,由于没有建立远程仓库,因此不需要执行Push操作,直接Close即可。
3)查看上传记录
注:每次commit必须填写Message,否则Commit键是不可操作状态。
4、回溯到旧版本
弹出回溯版本选择配置对话框>
回溯完成,如下图,选择Close>
此时期望回溯到的版本处于加粗状态,回溯成功。
5、回溯到分支指针所在的版本
注:分支指针(master)红色,表示分支指针和HEAD指针指向同一位置;分支指针(master)绿色,表示分支指针和HEAD指针指向不同位置。
6、master之外的分支创建
生成dev分支。
7、激活期望分支
1)激活到master分支
2)同理,激活到dev分支
8、多分支代码上传
当前激活的是哪个分支,在提交时会自动选择该分支。
1)master分支激活时
2)dev分支激活时
9、删除某分支(master/非master)
1)删除dev分支
2)同理,删除dev分支。
10、master分支删除后,如何再创建master分支
同创建普通分支一样,只是将分支名填写为master即可。
11、没有分支指针的上传记录,被如何操作
1)当commit时,没有提示commit到某一个分支,而仅仅有commit,说明当前的HEAD指针,没有与任何分支指针在同一位置,如上图所示。
选择commit时,不创建新分支。
查看上传记录:
此时激活任意一个分支,如激活dev分支
再点击刷新,
2021/7/18 23:31:08 上传的记录,没有了。说明,无分支归属的记录,在激活某确切分支后,该条记录被丢弃(应该是永久丢弃)。
12、多分支merge(合并)
多分支合并时,需要保证参与合并的两个分支,同名文件(两分支共同拥有的文件)不能有差异,有差异的地方仅仅是两个分支有对方不含有的文件,仅此而已。
分支A:
文件1;文件2;文件3;
分支B:
文件1;文件4;文件5;
分支A中的文件1和分支B中的文件1,必须完全相同,如果不同,则手动将两个文件1,差分成完全相同的文件。否则,合并时会报警“冲突”,导致合并失败。
13、是谁向谁合并
可以看到,
dev分支下是 d1.txt 和 newFile.txt
master分支下是m1.txt 和 newFile.txt
从下图可以看出,只能是非激活分支(被合并),向激活分支合并。
弹窗也说明是从dev分支进行merge(合并)>