git源码阅读
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源码阅读的更多相关文章
- ng2048源码阅读
ng2048源码阅读 Tutorial: http://www.ng-newsletter.com/posts/building-2048-in-angularjs.html Github: http ...
- LevelDB(v1.3) 源码阅读之 Arena(内存管理器)
LevelDB(v1.3) 源码阅读系列使用 LevelDB v1.3 版本的代码,可以通过如下方式下载并切换到 v1.3 版本的代码: $ git clone https://github.com/ ...
- LevelDB(v1.3) 源码阅读之 Slice
LevelDB(v1.3) 源码阅读系列使用 LevelDB v1.3 版本的代码,可以通过如下方式下载并切换到 v1.3 版本的代码: $ git clone https://github.com/ ...
- kubernetes源码阅读及编译
kubernetes源码阅读 工欲善其事,必先利其器.在阅读kubernetes源码时,我也先后使用过多个IDE,最终还是停留在IDEA上. 我惯用的是pycharm(IDEA的python IDE版 ...
- [strongswan][autoconf][automake][cento] 在CentOS上编译strongswan git源码时遇到的autoconf问题
编译strongswan的git源码问题 1. 概述 首先,我们想要通过源码编译strongswan.当满足以下条件时,通常你会遇见此问题: 源码时通过git clone的得来的,而不是官网下载的源码 ...
- Settings-Sync插件源码阅读
一.介绍 请参考官网: https://marketplace.visualstudio.com/items?itemName=Shan.code-settings-sync 二.源码目录详解 Ima ...
- gogs 源码阅读笔记 001
gogs 源码阅读笔记 001 gogs项目相当不错,本笔记实际是基于gogs fork版本 git-122a66f. gitea (gitea版本由来)[https://blog.gitea.io/ ...
- git 源码学习(init-db) 提交版本号 083c516331
写在前面的废话: 学完git之后,还是感觉云里雾里的,于是乎,就想到了通过学习git源码,来加深git的熟练度,同时学习一下c语言编程. git源码学习,逐步分析 这篇帖子是逐步分析git源码的,将g ...
- Kubernetes 学习(八)Kubernetes 源码阅读之初级篇------源码及依赖下载
0. 前言 阅读了一段时间 Golang 开源代码,准备正式阅读 Kubernetes 项目代码(工作机 Golang 版本为 Go 1.12) 参照 <k8s 源码阅读> 选择 1.13 ...
随机推荐
- android 打开系统相机,
1.第一步在androidmanifest.xml中注册 <uses-permission android:name="android.permission.WRITE_EXTERNA ...
- Java-小技巧-002-String 转 long
1.转化 long l = Long.parseLong([String]); 相当于 long l = Long.parseLong([String],10); long l = Long.valu ...
- 文件上传 - iframe上传
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- union 类型(即sum types)在golang语言中的实现
http://www.jerf.org/iri/post/2917 Sum Types in Go posted Jun 02, 2013 in Programming, Golang, Haskel ...
- nginx 11个处理阶段 && nginx lua 8个处理阶段
1. nginx 11 个处理阶段 nginx实际把请求处理流程划分为了11个阶段,这样划分的原因是将请求的执行逻辑细分,各阶段按照处理时机定义了清晰的执行语义,开发者可以很容易分辨自己需要开发的模块 ...
- spring boot 自定义过滤器链
spring boot 会按照order值的大小,从大到小的顺序来依次过滤. 贴下代码: package com.osp.ucenter; import org.springframework.boo ...
- Centos 集群配置SSH免登陆脚本
首先编写脚本生成集群服务器列表: hostsList.sh #!/bin/bash preIp="11.11.225." pwd="dyj2017" for i ...
- loadrunner怎么打印接口返回的参数
//首先使用web_reg_save_param方法保存服务器返回的参数,如下: web_reg_save_param ("S_respond","LB=",& ...
- iOS 网易彩票-4设置模块一
概述 基本上,每一款APP都有相应的设置模块.怎么设置才能更灵活和通用呢,这也是大家一直思考的.下面说说在网易彩票中,设置模块的设置思想. 基本上有三种方案: static cell(呆板,完全没有动 ...
- Javascript--运算符判断成绩运算
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...