Git 更新操作
修改已有功能
Tom执行了克隆操作,发现了一个新的文件string.c。他想知道是谁把这个文件添加到仓库中以及出于什么目的,所以他执行了 git log 命令。
上述命令将产生以下结果 −
Clone操作会在当前工作目录下创建一个新的目录。他会切换到新创建的目录并执行 git log 命令。
上面的命令将会产生以下结果−
观察日志后,他意识到文件string.c是Jerry添加的,用于实现基本的字符串操作。他对Jerry的代码感到好奇。于是他打开文本编辑器查看string.c,并立即发现了一个bug。在my_strlen函数中,Jerry没有使用常量指针。因此,他决定修改Jerry的代码。修改后的代码如下所示−
上述命令将产生以下结果−
测试之后,他提交了他的更改。
上述命令将产生以下结果 −
Tom使用git push命令将他的更改推送到远程仓库。
上述命令将产生以下结果:
添加新功能
同时,Jerry决定实现字符串比较功能。因此他修改了string.c文件。修改后的文件如下所示:
以上命令将产生以下结果 –
经过测试,他已经准备好推送他的更改。
在进行Push操作之前,他通过查看日志信息来验证提交。
上述命令将产生以下结果:
Jerry对这些变化感到满意,并且他想推动他的改变。
以上命令将产生以下结果 –
但是Git不允许Jerry推送他的更改。因为Git发现远程仓库和Jerry的本地仓库不同步。因此,他可能会丢失项目的历史记录。为了避免混乱,Git拒绝了这个操作。现在,Jerry必须先更新本地仓库,然后才能推送自己的更改。
获取最新更改
Jerry执行git pull命令将他的本地仓库与远程仓库同步。
上述命令将产生以下结果 −
拉取操作后,Jerry检查日志信息并找到了Tom提交的详细信息,提交ID为 cea2c000f53ba99508c5959e3e12fff493ba6f69
上述命令将产生以下结果−
现在,Jerry的本地仓库已经与远程仓库完全同步。因此,他可以安全地推送他的更改。
上述命令将产生如下结果 –