Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git rebase保存提交程序_Git_Rebase - Fatal编程技术网

Git rebase保存提交程序

Git rebase保存提交程序,git,rebase,Git,Rebase,很明显,当发生重基时,提交者信息可能会发生更改。在rebase上保存提交者信息(user.name、user.email)的最佳方法是什么 我尝试使用git log-1--格式获取提交者信息=%cn和git log-1——格式=%ce,然后将其设置为my user.name/user.email并重新定基。这应该足够好了,对吧?还是我遗漏了什么?你到底想实现什么?我假设您这样做是为了使一个分支或一组提交看起来与另一个分支或一组提交相同。重新定基不会创建全新的提交,因为它们是在不同的时间与不同的提

很明显,当发生重基时,提交者信息可能会发生更改。在rebase上保存提交者信息(user.name、user.email)的最佳方法是什么


我尝试使用
git log-1--格式获取提交者信息=%cn
git log-1——格式=%ce
,然后将其设置为my user.name/user.email并重新定基。这应该足够好了,对吧?还是我遗漏了什么?

你到底想实现什么?我假设您这样做是为了使一个分支或一组提交看起来与另一个分支或一组提交相同。重新定基不会创建全新的提交,因为它们是在不同的时间与不同的提交人完成的。除非将所有内容(包括元数据)都与原始提交完全相同,否则SHA-1散列将不会相同。如果您希望这样做,那么您最好使用原始提交,而不是重新定基的提交。所以我不认为重新定基可满足你的需要。在短暂的谷歌搜索之后,你想要做的似乎并不容易,而且可能是有充分的理由的。这就是我的答案——不要做你想做的事,我不知道这会有什么好处


如果您还想调查,我会研究在哪里可以设置
GIT\u COMMITTER\u NAME
GIT\u COMMITTER\u EMAIL
,尽管我不确定在重新基址期间是否可以轻松地逐个提交设置这些

我也有类似的问题。我们的核心代码存储库变得太大了,所以我使用git filter分支将其分解,但这会在较小的存储库中创建大量空的合并提交。在试图删除它们的过程中,我发现git rebase弄乱了提交人的日期和提交人的姓名/电子邮件,这意味着我重新设置基础的任何分支都不再链接回它们来自的提交,即使没有任何更改,这意味着我可以得到许多分支,具有相同的提交,不再相同

似乎情况是,出于偶然或设计,
git-rebase
不是答案。如果您想在提交中保留所有三个
git\u提交者
环境变量,请改用
git-filter-branch
(这似乎基本上允许您准确地重写提交,只更改提交中提到的1件事)。遗憾的是,这不像
git-rebase-i


在我的例子中,我正在尝试从分支的历史记录中删除特定的提交,或者重新排序提交。

我明白了。这与持续集成自动化有关。这有点冗长,需要详细说明,但您提供的信息很有帮助。谢天谢地,原始作者姓名仍然存在。