https://github.com/git-for-windows/git/issues/1854

https://github.com/git-for-windows/git/pull/1902/files

分了2步操作,第一步是git reset,第二部是git cherry-pick --continue

https://github.com/git-for-windows/git/blob/master/CONTRIBUTING.md

根据contributing.md,clone源代码。然后切换到vs/master分支。

commit

查看commit.c中的源代码中的prepare_to_commit函数,查看call hierarchy。(SHA-1: 66104e01a6ac313a8b9991d14658ca850b53598a)

merge.c中的cmd_merge函数(1274行),调用commit.c中的cmd_commit函数,

  ret = cmd_commit(nargc, nargv, prefix);

commit.c中的cmd_commit函数(1584行),调用commit.c中的prepare_to_commit函数

if (!prepare_to_commit(index_file, prefix,
current_head, &s, &author_ident)) {
rollback_index_files();
return ;
}

merge.c源码中1257行

if (abort_current_merge) {
int nargc = ;
const char *nargv[] = {"reset", "--merge", NULL}; if (orig_argc != )
usage_msg_opt(_("--abort expects no arguments"),
builtin_merge_usage, builtin_merge_options); if (!file_exists(git_path_merge_head(the_repository)))
die(_("There is no merge to abort (MERGE_HEAD missing).")); /* Invoke 'git reset --merge' */
ret = cmd_reset(nargc, nargv, prefix);
goto done;
}

cherry-pick

builtin\revert.c  第224行

int cmd_cherry_pick(int argc, const char **argv, const char *prefix)

reset

builtin\reset.c  第287行

int cmd_reset(int argc, const char **argv, const char *prefix)

在merge.c中有一个地方在调用。这一块代码可以参考

if (abort_current_merge) {
int nargc = ;
const char *nargv[] = {"reset", "--merge", NULL}; if (orig_argc != )
usage_msg_opt(_("--abort expects no arguments"),
builtin_merge_usage, builtin_merge_options); if (!file_exists(git_path_merge_head(the_repository)))
die(_("There is no merge to abort (MERGE_HEAD missing).")); /* Invoke 'git reset --merge' */
ret = cmd_reset(nargc, nargv, prefix);
goto done;
}

git源码阅读的更多相关文章

  1. ng2048源码阅读

    ng2048源码阅读 Tutorial: http://www.ng-newsletter.com/posts/building-2048-in-angularjs.html Github: http ...

  2. LevelDB(v1.3) 源码阅读之 Arena(内存管理器)

    LevelDB(v1.3) 源码阅读系列使用 LevelDB v1.3 版本的代码,可以通过如下方式下载并切换到 v1.3 版本的代码: $ git clone https://github.com/ ...

  3. LevelDB(v1.3) 源码阅读之 Slice

    LevelDB(v1.3) 源码阅读系列使用 LevelDB v1.3 版本的代码,可以通过如下方式下载并切换到 v1.3 版本的代码: $ git clone https://github.com/ ...

  4. kubernetes源码阅读及编译

    kubernetes源码阅读 工欲善其事,必先利其器.在阅读kubernetes源码时,我也先后使用过多个IDE,最终还是停留在IDEA上. 我惯用的是pycharm(IDEA的python IDE版 ...

  5. [strongswan][autoconf][automake][cento] 在CentOS上编译strongswan git源码时遇到的autoconf问题

    编译strongswan的git源码问题 1. 概述 首先,我们想要通过源码编译strongswan.当满足以下条件时,通常你会遇见此问题: 源码时通过git clone的得来的,而不是官网下载的源码 ...

  6. Settings-Sync插件源码阅读

    一.介绍 请参考官网: https://marketplace.visualstudio.com/items?itemName=Shan.code-settings-sync 二.源码目录详解 Ima ...

  7. gogs 源码阅读笔记 001

    gogs 源码阅读笔记 001 gogs项目相当不错,本笔记实际是基于gogs fork版本 git-122a66f. gitea (gitea版本由来)[https://blog.gitea.io/ ...

  8. git 源码学习(init-db) 提交版本号 083c516331

    写在前面的废话: 学完git之后,还是感觉云里雾里的,于是乎,就想到了通过学习git源码,来加深git的熟练度,同时学习一下c语言编程. git源码学习,逐步分析 这篇帖子是逐步分析git源码的,将g ...

  9. Kubernetes 学习(八)Kubernetes 源码阅读之初级篇------源码及依赖下载

    0. 前言 阅读了一段时间 Golang 开源代码,准备正式阅读 Kubernetes 项目代码(工作机 Golang 版本为 Go 1.12) 参照 <k8s 源码阅读> 选择 1.13 ...

随机推荐

  1. 从0开始做一个的Vue图片/ 文件选择(上传)组件[基础向]

    原文:http://blog.csdn.net/sinat_17775997/article/details/58585142 之前用Vue做了一个基础的组件 vue-img-inputer ,下面就 ...

  2. 高并发秒杀系统方案(JSR303参数校验)

    <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring- ...

  3. mysql transaction 事务

    1.事务简介 一个"最小的"不可再分的"工作单元". 一个事务通常对应了一个完整的业务.如:银行的转账功能,a转账给b,a扣钱,b加钱. 一个事务包含一条或多条 ...

  4. InnoDB: Operating system error number 87 in a file operation. 错误87的解决方法

    InnoDB: Operating system error number 87 in a file operation. 错误87的解决方法 140628  8:10:48 [Note] Plugi ...

  5. delete删除-some

  6. spfa 判断负环 (转载)

    当然,对于Spfa判负环,实际上还有优化:就是把判断单个点的入队次数大于n改为:如果总的点入队次数大于所有点两倍 时有负环,或者单个点的入队次数大于sqrt(点数)有负环.这样时间复杂度就降了很多了. ...

  7. C++(STL)&&树-堆结构练习——合并果子之哈夫曼树

    题目题解:http://blog.csdn.net/xu12110501127/article/details/9199335 有关博客:http://www.360doc.com/content/1 ...

  8. kmeans聚类源代码

    代码是在weka上二次开发的,但没有使用原来的kmeans代码,只是用了它的数据类Intances,先说下与它相关的几点东西. 一.KMeans算法简介 输入:聚类个数k,以及包含 n个数据对象的数据 ...

  9. zw版【转发·台湾nvp系列Delphi例程】HALCON max_connection

    zw版[转发·台湾nvp系列Delphi例程]HALCON max_connection procedure TForm1.Button1Click(Sender: TObject);var ho_I ...

  10. JSON草稿

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...