C++:使用 git 的 clang 格式
C++: clang-format with git
我通常工作的项目今天在我尝试在新分支中提交时出现以下错误:
Traceback (most recent call last):
File ".git/hooks/pre-commit", line 86, in <module>
clang_format(f)
File ".git/hooks/pre-commit", line 41, in clang_format
action = raw_input('{} does not conform to clang-format rules. '
NameError: name 'raw_input' is not defined
知道如何解决这个问题吗?至少让我的代码提交。谢谢!
您可以暂时禁用预提交挂钩以保护您的更改,然后再尝试了解系统上发生的事情。
使用 --no-verify
标志提交,或者如果需要多次提交则禁用钩子。
绕过提交的挂钩
git commit --no-verify
绕过所有提交的钩子
在您的 git 项目的根目录下,执行:
chmod -x .git/hooks/pre-commit
这会禁用调用烦人的 python 脚本的挂钩,让您无需任何检查即可提交您想要的任何内容。但是请注意,不执行任何检查。
正如评论中提到的几个人,很明显这里发生的是 Python-2.x 脚本正在被 Python-3.x 解释口译员。
同时安装了 Python 两种版本的系统有时会使用名称 python2
来调用 Python 2.x 解释器,并使用 python3
来调用 Python 3.y 解释器。 (这里 x
和 y
的值可能会有所不同,尽管现在没有人应该使用早于 Python 2.7 和 it's a good idea to move to Python 3 soon 的任何东西。)
将 Python 2 脚本转换为 Python 3 通常很容易,但是如果您安装了两个解释器,并且您的脚本本身只是简单地读取:
#! /usr/bin/env python
... script ...
使用 Python 2 的最快方法,如果它仍在您的系统上,名称为 python2
,则将第一行更改为:
#! /usr/bin/env python2
第一行可能有所不同,但总体思路是 #!
后跟解释器的完整路径名,然后是该解释器的任何参数。使用 /usr/bin/env
作为解释器允许进一步的路径搜索,这样你就可以让它找到 python
、python2
、python3
、python3.6
、python3.7
,等等,视情况而定。
作为,从Git这边,你可以跳过整个预提交脚本。
我通常工作的项目今天在我尝试在新分支中提交时出现以下错误:
Traceback (most recent call last):
File ".git/hooks/pre-commit", line 86, in <module>
clang_format(f)
File ".git/hooks/pre-commit", line 41, in clang_format
action = raw_input('{} does not conform to clang-format rules. '
NameError: name 'raw_input' is not defined
知道如何解决这个问题吗?至少让我的代码提交。谢谢!
您可以暂时禁用预提交挂钩以保护您的更改,然后再尝试了解系统上发生的事情。
使用 --no-verify
标志提交,或者如果需要多次提交则禁用钩子。
绕过提交的挂钩
git commit --no-verify
绕过所有提交的钩子
在您的 git 项目的根目录下,执行:
chmod -x .git/hooks/pre-commit
这会禁用调用烦人的 python 脚本的挂钩,让您无需任何检查即可提交您想要的任何内容。但是请注意,不执行任何检查。
正如评论中提到的几个人,很明显这里发生的是 Python-2.x 脚本正在被 Python-3.x 解释口译员。
同时安装了 Python 两种版本的系统有时会使用名称 python2
来调用 Python 2.x 解释器,并使用 python3
来调用 Python 3.y 解释器。 (这里 x
和 y
的值可能会有所不同,尽管现在没有人应该使用早于 Python 2.7 和 it's a good idea to move to Python 3 soon 的任何东西。)
将 Python 2 脚本转换为 Python 3 通常很容易,但是如果您安装了两个解释器,并且您的脚本本身只是简单地读取:
#! /usr/bin/env python
... script ...
使用 Python 2 的最快方法,如果它仍在您的系统上,名称为 python2
,则将第一行更改为:
#! /usr/bin/env python2
第一行可能有所不同,但总体思路是 #!
后跟解释器的完整路径名,然后是该解释器的任何参数。使用 /usr/bin/env
作为解释器允许进一步的路径搜索,这样你就可以让它找到 python
、python2
、python3
、python3.6
、python3.7
,等等,视情况而定。
作为