我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Git如何更新

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Git如何更新

本篇内容介绍了“Git如何更新”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

修改现有功能

Tom 执行克隆操作并找到一个新文件 string.c。他想知道谁将此文件添加到存储库中以及出于什么目的,因此,他执行了git log命令。

[tom@CentOS ~]$ git clone gituser@git.server.com:project.git

上述命令将产生以下结果

Initialized empty Git repository in /home/tom/project/.git/
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (4/4), done.
Receiving objects: 100% (6/6), 726 bytes, done.
remote: Total 6 (delta 0), reused 0 (delta 0)

克隆操作将在当前工作目录中创建一个新目录。他将目录更改为新创建的目录并执行git log命令。

[tom@CentOS ~]$ cd project/
[tom@CentOS project]$ git log

上述命令将产生以下结果

commit d1e19d316224cddc437e3ed34ec3c931ad803958
Author: Jerry Mouse <jerry@tutorialspoint.com>Date: Wed Sep 11 08:05:26 2013 +0530Changed return type of my_strlen to size_tcommit 19ae20683fc460db7d127cf201a1429523b0e319
Author: Tom Cat <tom@tutorialspoint.com>Date: Wed Sep 11 07:32:56 2013 +0530Initial commit

观察日志后,他意识到文件string.c是Jerry添加的,用于实现基本的字符串操作。他对 Jerry 的代码很好奇。于是他在文本编辑器中打开 string.c 并立即发现了一个错误。在 my_strlen 函数中,Jerry 没有使用常量指针。因此,他决定修改 Jerry 的代码。修改后,代码如下

[tom@CentOS project]$ git diff

上述命令将产生以下结果

diff --git a/string.c b/string.c
index 7da2992..32489eb 100644--- a/string.c
+++ b/string.c
@@ -1,8 +1,8 @@#include <stdio.h>-size_t my_strlen(char *s)
+size_t my_strlen(const char *s)
{
   - char *p = s;
   + const char *p = s;   while (*p)
   ++p;
}

经过测试,他提交了他的更改。

[tom@CentOS project]$ git status -s
M string.c
?? string[tom@CentOS project]$ git add string.c
[tom@CentOS project]$ git commit -m 'Changed char pointer to const char pointer'[master cea2c00] Changed char pointer to const char pointer1 files changed, 2 insertions(+), 2 deletions(-)
[tom@CentOS project]$ git log

上述命令将产生以下结果

commit cea2c000f53ba99508c5959e3e12fff493b
Author: Tom Cat <tom@tutorialspoint.com>Date: Wed Sep 11 08:32:07 2013 +0530Changed char pointer to const char pointercommit d1e19d316224cddc437e3ed34ec3c931ad803958
Author: Jerry Mouse <jerry@tutorialspoint.com>Date: Wed Sep 11 08:05:26 2013 +0530Changed return type of my_strlen to size_tcommit 19ae20683fc460db7d127cf201a1429523b0e319
Author: Tom Cat <tom@tutorialspoint.com>Date: Wed Sep 11 07:32:56 2013 +0530Initial commit

Tom 使用 git push 命令推送他的更改。

[tom@CentOS project]$ git push origin master

上述命令将产生以下结果

Counting objects: 5, done.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 336 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
To gituser@git.server.com:project.git
d1e19d3..cea2c00 master −> master

添加新功能

同时,Jerry 决定实现字符串比较功能。于是他修改了string.c。修改后,文件如下所示

[jerry@CentOS project]$ git diff

上述命令将产生以下结果

index 7da2992..bc864ed 100644--- a/string.c
+++ b/string.c30Git Tutorials
@@ -9,9 +9,20 @@ size_t my_strlen(char *s)return (p -s );
}
+char *my_strcpy(char *t, char *s)
+
{
   +   char *p = t;
   +
   + while (*t++ = *s++)
   + ;
   +
   +   return p;
   +
}
+int main(void){   int i; 
   +   char p1[32];   char *s[] = 
   {      "Git tutorials",      "Tutorials Point"
      @@ -20,5 +31,7 @@ int main(void)      for (i = 0; i < 2; ++i)      printf("string lenght of %s = %lu\n", s[i], my_strlen(s[i]));
      +
      printf("%s\n", my_strcpy(p1, "Hello, World !!!"));
      +      return 0;
   }
}

在测试之后,他准备好推动他的改变。

[jerry@CentOS project]$ git status -s
M string.c
?? string[jerry@CentOS project]$ git add string.c
[jerry@CentOS project]$ git commit -m "Added my_strcpy function"[master e944e5a] Added my_strcpy function1 files changed, 13 insertions(+), 0 deletions(-)

在推送操作之前,他通过查看日志消息来验证提交。

[jerry@CentOS project]$ git log

上述命令将产生以下结果

commit e944e5aab74b26e7447d3281b225309e4e59efcd
Author: Jerry Mouse <jerry@tutorialspoint.com>Date: Wed Sep 11 08:41:42 2013 +0530Added my_strcpy functioncommit d1e19d316224cddc437e3ed34ec3c931ad803958
Author: Jerry Mouse <jerry@tutorialspoint.com>Date: Wed Sep 11 08:05:26 2013 +0530Changed return type of my_strlen to size_tcommit 19ae20683fc460db7d127cf201a1429523b0e319
Author: Tom Cat <tom@tutorialspoint.com>Date: Wed Sep 11 07:32:56 2013 +0530Initial commit

Jerry 对这些变化很满意,他想推动他的变化。

[jerry@CentOS project]$ git push origin master

上述命令将产生以下结果

To gituser@git.server.com:project.git
! [rejected]
master −> master (non-fast-forward)error: failed to push some refs to 'gituser@git.server.com:project.git'To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again. See the 'Note about
fast-forwards' section of 'git push --help' for details.

但是 Git 不允许 Jerry 推送他的更改。因为 Git 发现远程仓库和 Jerry 的本地仓库不同步。正因为如此,他可能会丢失项目的历史记录。为了避免这种混乱,Git 失败了这个操作。现在,Jerry 必须先更新本地存储库,然后才能推送自己的更改。

获取最新更改

Jerry 执行 git pull 命令以将他的本地存储库与远程存储库同步。

[jerry@CentOS project]$ git pull

上述命令将产生以下结果

remote: Counting objects: 5, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From git.server.com:project
d1e19d3..cea2c00 master −> origin/master
First, rewinding head to replay your work on top of it...
Applying: Added my_strcpy function

拉操作后,Jerry 检查日志消息并找到 Tom 提交 ID 为cea2c000f53ba99508c5959e3e12fff493ba6f69的提交的详细信息

[jerry@CentOS project]$ git log

上述命令将产生以下结果

commit e86f0621c2a3f68190bba633a9fe6c57c94f8e4f
Author: Jerry Mouse <jerry@tutorialspoint.com>Date: Wed Sep 11 08:41:42 2013 +0530Added my_strcpy functioncommit cea2c000f53ba99508c5959e3e12fff493ba6f69
Author: Tom Cat <tom@tutorialspoint.com>Date: Wed Sep 11 08:32:07 2013 +0530Changed char pointer to const char pointercommit d1e19d316224cddc437e3ed34ec3c931ad803958
Author: Jerry Mouse <jerry@tutorialspoint.com>Date: Wed Sep 11 08:05:26 2013 +0530Changed return type of my_strlen to size_tcommit 19ae20683fc460db7d127cf201a1429523b0e319
Author: Tom Cat <tom@tutorialspoint.com>Date: Wed Sep 11 07:32:56 2013 +0530Initial commit

现在,Jerry 的本地存储库与远程存储库完全同步。所以他可以安全地推送他的更改。

[jerry@CentOS project]$ git push origin master

上述命令将产生以下结果

Counting objects: 5, done.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 455 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
To gituser@git.server.com:project.git
cea2c00..e86f062 master −> master

“Git如何更新”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Git如何更新

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

2024-04-02

如何使用git打更新包

这篇文章将为大家详细讲解有关如何使用git打更新包,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。打包原理:利用git archive输出两个提交间的改变NEW_COMMIT_ID_HERE 较新的提交ID
2023-06-09

如何正确地更新 Git 仓库

在使用 Git 进行协作开发的过程中,你可能需要将本地仓库同步更新到远程仓库上或者从远程仓库中获取最新的代码进行本地开发。本文将为你介绍如何使用 Git 命令正确地更新仓库。更新远程仓库如果你想要将本地代码同步到远程仓库中,那么你需要使用
2023-10-22

git如何更改分支名

这篇文章主要介绍了git如何更改分支名的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇git如何更改分支名文章都会有所收获,下面我们一起来看看吧。查看分支在开始更改分支名之前,需要先查看当前可用的分支。可以通过以
2023-07-05

win1019025如何更新

这篇文章主要介绍了win1019025如何更新的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇win1019025如何更新文章都会有所收获,下面我们一起来看看吧。1.更新前的系统版本: Windows 10 In
2023-07-02

如何更新IDEA

这篇文章主要讲解了“如何更新IDEA ”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何更新IDEA ”吧!1、全新的启动界面跟以往的启动界面有很大的不同,全新的启动界面变得更加花里胡哨,同
2023-06-15

win101909如何更新

这篇文章主要讲解了“win101909如何更新”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“win101909如何更新”吧!一、自动更新 1.新版本更新之后,如果大家的电脑打开了【自动更新】
2023-07-01

win10如何更新

这篇文章主要介绍了win10如何更新的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇win10如何更新文章都会有所收获,下面我们一起来看看吧。win10更新的方法第一步:点击左下角windows图标 打更新两个字
2023-07-02

win10更新失败如何取消更新

这篇文章主要讲解了“win10更新失败如何取消更新”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“win10更新失败如何取消更新”吧!解决方法:1、点击开始选择“设置”。 2、点击“更新和安全
2023-07-01

android studio如何更新

要更新Android Studio,可以按照以下步骤进行操作:1. 打开Android Studio,并在顶部菜单中选择“Help”(帮助)选项。2. 在下拉菜单中选择“Check for updates”(检查更新)。3. Android
2023-08-17

windows10如何更新Ubuntu

本篇内容主要讲解“windows10如何更新Ubuntu”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“windows10如何更新Ubuntu”吧!升级方法:我这里只针对已有ubuntu的用户打开
2023-07-04

7200u如何更新win11

本篇内容主要讲解“7200u如何更新win11”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“7200u如何更新win11”吧!7200u能更新win11吗:答:7200u处理器能更新win11系
2023-07-01

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录