Git实战
场景一:Git 本地版本库用法参考
首先,我们需要在本地创建一个本地仓库,此处,我们使用mkdir命令创建了一个空的文件夹,命名为gitTest。进入此文件夹后,使用git init将此文件夹初始化为git的仓库。
然后,我们在文件夹下面简单地创建一个helloworld.java文件,并查询此时的状态,结果如下。
然后,我们使用add命令将两个文件添加到缓存区中,再显示此时的状态。
为了测试reset命令,我们需要至少再进行一次提交,此时的git log如下。
使用reset命令回到第一次提交时的状态,并查询此时的git log。
然后,我们再使用reset命令重新“向前”到第二次提交的状态。但是,此时我们使用git log看不到第二次的状态,而是要使用git reflog命令。
场景二:Git 远程版本库的基本用法
首先,我们在github远程创建一个仓库,该仓库名为sehomework。
然后,我们在本地使用clone命令将项目复制到本地。此时,我们就可以对项目文件进行增删改查,并使用场景一中的命令对其进行管理。
使用remote指令查看远端的分支名称。
我们将刚刚创建的helloword.java文件复制到当前的项目中,并添加到缓存区。
然后,我们可以使用commit命令提交更改,再使用push命令将更改推送到原来的仓库。
我们可以在远程仓库观察到更改已经被接受了。
那么,我们再来测试一下pull指令。首先在远程仓库创建一个新的文件hellojava.java。
然后在本地使用pull命令拉取远程的更新。
可以看到,新创建的文件已经被同步到本地的仓库了。
场景三:团队项目中的分叉合并
我们在场景二的项目中继续场景三的操作。在团队工作中,往往需要将不同任务分配给不同的小组,为了避免冲突,需要每个小组在一个分支下工作,最后合并所有的分支。首先,我们创建一个新的分支mybranch。
然后使用checkout指令切换到该分支下,使用status指令可以看到,我们已经处于该分支下。
然后,我们就可以在该分支下进行工作。
如果要推送所有的更改,我们需要切换到master分支,并且合并mybranch的更改,最后使用push指令进行推送。
远程仓库能观察到相应的更新。
场景四:Git Rebase
在合并和 push 之前,我们需要使用rebase指令检查修改一下 commit 记录。
为了实现场景四中的小测试,我们首先在mybranch下先后提交了A,B,C。
然后,我们在主分支推进版本。
然后,我们切回mybranch分支,使用rebase指令管理commit,并drop掉A和B的commit。
此时mybranch的log如下,可以看到已经没有A和B的提交了。
回到主分支,我们合并mybranch分支并推送到远程仓库。
在远程仓库,我们可以看到C和D的提交,但是没有出现A和B。
参考文献:https://mp.weixin.qq.com/s/Km5KuXPETvG0wCGHrvj9Vg