Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.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补丁忽略空白差异c++; 我唯一关心的是C++文件。(不要担心二进制文件、文本等……你可以假设所有的东西都是C++代码)。_C++_Git - Fatal编程技术网

git补丁忽略空白差异c++; 我唯一关心的是C++文件。(不要担心二进制文件、文本等……你可以假设所有的东西都是C++代码)。

git补丁忽略空白差异c++; 我唯一关心的是C++文件。(不要担心二进制文件、文本等……你可以假设所有的东西都是C++代码)。,c++,git,C++,Git,我有以下分支机构: * dev master 现在,我可以创建一个新的分支“魔术”,其中分支魔法等同于“DEV”(以C++代码生成),但最小化无用的白线差异(如插入额外的换行符)。 这可能吗 谢谢 git diff--忽略空间更改…您可以尝试设置一个将: 仅当当前分支是魔术时才执行任何操作 删除*.cpp文件的所有白线 进行新提交(因为后期合并钩子不能直接影响git合并的结果) 你的问题我不太清楚。我认为您希望新分支包含一系列提交,这些提交与dev中的提交“等效”,但不包含不必要的空白更

我有以下分支机构:

* dev
  master
现在,我可以创建一个新的分支“魔术”,其中分支魔法等同于“DEV”(以C++代码生成),但最小化无用的白线差异(如插入额外的换行符)。 这可能吗


谢谢

git diff--忽略空间更改…

您可以尝试设置一个将:

  • 仅当当前分支是魔术时才执行任何操作
  • 删除*.cpp文件的所有白线
  • 进行新提交(因为
    后期合并
    钩子不能直接影响
    git合并
    的结果)

    • 你的问题我不太清楚。我认为您希望新分支包含一系列提交,这些提交与dev中的提交“等效”,但不包含不必要的空白更改

      最简单的方法是使用git rebase--interactive。这允许您手动编辑一系列提交。您可以使用
      git rev list HEAD | tail-n1
      获取第一次(“根”)提交的哈希值。如果您还想编辑第一次提交,这会更加困难,但有一个非常好的答案

      git checkout dev
      git checkout -b magic
      git rebase --interactive $(git rev-list HEAD | tail -n 1)
      
      这将在提交列表中按时间顺序打开一个编辑器。您可以在要更改的提交中将“拾取”更改为“编辑”。然后,git将在处理每个提交之前暂停,允许您使用
      git commit--amend
      对其进行修改,然后使用
      git rebase--continue
      继续重新基础。当然,您可以运行脚本来清理文件,而不是手动编辑它们。如果要基于与上一次提交的差异执行此操作,则需要使用类似于
      git cat file blob HEAD^:filename
      的内容来获取上一次修订,或者使用
      git diff HEAD^ filename

      如果您想自动化整个过程,那么可以使用
      git filter branch--tree filter script
      。查看git筛选器分支的手册页了解详细信息

      如果要防止将来的提交包含空格错误,可以设置预提交以禁止它们

      一旦您对新的branch magic感到满意,您就可以使用它来替换dev:


      但是,请注意,这可能会给那些在自己的回购协议中已经拥有dev副本的人带来问题。然后最好是进行合并。

      是否需要保留dev中的更改历史记录?
      git branch -m dev dev-old
      git branch -m magic dev