如何让Windows单独留下可执行文件?

时间:2014-11-12 10:11:58

标签: windows git

我很遗憾被迫在部分Windows PC上工作。

当我查看我的项目时,git status立即说:

modified:   bin/my_executable

git diff说:

diff --git a/bin/my_executable b/bin/my_executable
old mode 100755
new mode 100644

"哦,简单"我想。 " Windows只是剥离可执行位。"

现在我一直试图让Git在过去的30分钟内停止它并且我即将沮丧地引发了动脉瘤。签出文件不起作用:

$ git checkout bin/my_executable
$ git diff
diff --git a/bin/my_executable b/bin/my_executable
old mode 100755
new mode 100644

硬重置,无效:

$ git reset --hard
HEAD is now at 789abcd My last commit text
$ git diff
diff --git a/bin/my_executable b/bin/my_executable
old mode 100755
new mode 100644

使用git update-index打开可执行位不起作用:

$ git update-index --chmod=+x bin/my_executable
$ git diff
diff --git a/bin/my_executable b/bin/my_executable
old mode 100755
new mode 100644
$ git checkout bin/my_executable
$ git diff
diff --git a/bin/my_executable b/bin/my_executable
old mode 100755
new mode 100644

要求Git友好地忽略可执行位更改没有工作:

$ git config --global core.fileMode false
$ git diff
diff --git a/bin/my_executable b/bin/my_executable
old mode 100755
new mode 100644
$ git checkout bin/my_executable
$ git diff
diff --git a/bin/my_executable b/bin/my_executable
old mode 100755
new mode 100644

这是一个完整的拦截器。 Git甚至没有让我弹出我的藏品而不是第一次"提交我的更改"。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

完成后:

git config --list

我注意到core.fileMode在本地设置为true。我不知道这是怎么发生的,但它可能与项目目录在Windows和Linux PC之间同步这一事实有关。多年来我一直没有使用过这个工作流程。

简而言之,这解决了我的问题:

git config --unset core.fileMode