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 1; }
merge.c源码中1257行
if (abort_current_merge) { int nargc = 2; const char *nargv[] = {"reset", "--merge", NULL}; if (orig_argc != 2) 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 = 2; const char *nargv[] = {"reset", "--merge", NULL}; if (orig_argc != 2) 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; }
作者:Chuck Lu GitHub |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2018-03-02 我最在行 汉字
2018-03-02 self join in sql server
2018-03-02 窗口函数 SELECT - OVER Clause (Transact-SQL)
2018-03-02 SQL Source Control for teams
2018-03-02 在存储过程中触发错误
2018-03-02 case when in sql server's stored procedure
2017-03-02 BsonDocument