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