git diff在命令行上而不是在Python中工作的问题

2024-09-27 22:19:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个在Git和ClearCase存储库之间来回移动提交的应用程序。在

Git版本为:1.8.3.msysgit.0

代码是用Python(2.7.5)编写的,我得到一个wierd错误。命令行上的行为与应用程序中同一命令的行为不同:

从我的应用程序日志中,我得到以下信息:

[git diff --name-status -M -z --ignore-submodules 4dc7ad29d69ee2385802b262bfb9a4f1e28f10ac^..4dc7ad29d69ee2385802b262bfb9a4f1e28f10ac --] exit code: 128
Command output for [git diff --name-status -M -z --ignore-submodules 4dc7ad29d69ee2385802b262bfb9a4f1e28f10ac^..4dc7ad29d69ee2385802b262bfb9a4f1e28f10ac --]:
stderr >> fatal: bad revision '4dc7ad29d69ee2385802b262bfb9a4f1e28f10ac^..4dc7ad29d69ee2385802b262bfb9a4f1e28f10ac'

但是,从同一个Windows命令行,没有结果,但也没有错误:

^{pr2}$

同样,如果我运行这个命令行(显示差异,而不仅仅是重命名的文件),我得到的输出是:

C:\Temp\gitcc_test>git diff --ignore-submodules 6a4db18a0048db2dfe0e6639cabcdf10e265a1b6..4dc7ad29d69ee2385802b262bfb9a4f1e28f10ac --
diff --git a/hello.txt b/hello.txt
index 3eecb7d..da588dd 100644
--- a/hello.txt
+++ b/hello.txt
@@ -1 +1 @@
-Bonjour!
+Hello!

C:\Temp\gitcc_test>

但是这个命令什么也不返回:

C:\Temp\gitcc_test>git diff --ignore-submodules 4dc7ad29d69ee2385802b262bfb9a4f1e28f10ac^..4dc7ad29d69ee2385802b262bfb9a4f1e28f10ac --

C:\Temp\gitcc_test>

4dc7的父提交。。。是6a4d…,那么4dc7…^为什么不给我任何结果?在

提前谢谢!在


Tags: 命令行nametestgit命令txt应用程序hello
1条回答
网友
1楼 · 发布于 2024-09-27 22:19:23

事实证明,在命令行和Python下,不使用“..”并将插入符号放在散列的另一端都是一种处理方法。在

所以这个:

git diff  name-status -M -z  ignore-submodules 4dc7ad29d69ee2385802b262bfb9a4f1e28f10ac^..4dc7ad29d69ee2385802b262bfb9a4f1e28f10ac  

变成这样:

^{pr2}$

一切都很好!在

相关问题 更多 >

    热门问题