Git实战

场景一:Git 本地版本库用法参考

首先,我们需要在本地创建一个本地仓库,此处,我们使用mkdir命令创建了一个空的文件夹,命名为gitTest。进入此文件夹后,使用git init将此文件夹初始化为git的仓库。

然后,我们在文件夹下面简单地创建一个helloworld.java文件,并查询此时的状态,结果如下。

 

 

 

然后,我们使用add命令将两个文件添加到缓存区中,再显示此时的状态。

 

 

 

将文件添加到缓存后我们就可以使用Commit命令将文件提交到仓库中,并在此查询此时状态,同时我们可以使用log指令查看提交的历史记录。

 

 

 

 

 

为了测试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

 

posted @ 2020-10-07 18:10  TrafalgarLu  阅读(88)  评论(0)    收藏  举报