初始化git仓库
可以使用git init
将文件夹初始化成一个空的git仓库,会在文件夹里生成.git
隐藏文件,用来存储所有的内部数据。
图中,git_demo被初始化成了一个git仓库,同时可以看到.git
中所包含的内容。后续有关git的操作都会使用这个仓库来展示。
一些基本的git命令
1 | git status |
这个命令可以用来查看仓库的状态。
1 | git add |
这个命令可以将对应的文件进行追踪。git add .
可以追踪所有的文件。
1 | git commit |
这个命令可以将追踪的文件进行提交,同时可以对该次提交添加注解。可以使用git commit -m 'xxx'
对提交进行快速注解。
1 | git log |
这个命令可以显示当前目录与上一次快照相比发生了什么变化,当然也可以比较指定的两个版本之间的变化,通过哈希值或分支名。
问题:哈希值到底代表着什么?
我们可以使用git cat-file
来展示哈希值背后到底代表着什么。
从图中可以看出,我们从第一次提交的哈希值开始,一步步深入,最后通过哈希值找到了对应文件中的内容。
有关分支和合并
在初始化仓库后,会有一个master引用,‘master’通常代表项目的最新版本。同时还有一个特殊对的HEAD引用,它基本上用于指向你当前正在查看的提交。因此一开始HEAD指针指向master。进入不同的分支通常是由HEAD指针的移动来实现的。
我将通过language.py文件更好地展示有关分支和合并的操作。
首先让我们看一下master分支下的language.py文件。
然后我们创建两个不同的分支分别为language.py文件增加新的不同功能。这里使用到了git branch
创建新的分支。我们创建两个名为Chinese
和Japanese
两个分支。
此时这两个分支和master在同一位置。
我们各自为新建的两个分支增添一些内容。使用git checkout
使HEAD指向对应分支。
日志输出结果如下图:
可以清楚地看到对应的分支。
接下来我们将合并分支,用到git merge
命令。
合并时,git会自动处理没有冲突的部分,如果遇到冲突,则可以手动处理,也可以借用插件帮助处理。
我选择手动解决冲突,如何使用插件目前还没有深入的了解。
合并后,日志输出如下:
可以清楚地看到分支合并成了一条主分支。
未完待续…