如何在流浪汉VM中使用cygwin,git bash和git在windows上设置git?

时间:2018-05-30 15:48:29

标签: git visual-studio-code vagrant cygwin

我的设置

我们正在使用Windows 10。 我的任务是使用Vagrant构建一个我们都想使用的开发虚拟机。

我们正在通过Vagrant SSH挂载将我们的git文件夹挂载到VM中,这对于现在来说是完美的。

我们也使用Visual Studio Code作为编辑器。

我的目标

我想在cygwin中使用git(对于windows用户)并在VM中无缝地进行git。

当然,我们希望使用Visual Studio代码的功能来高亮显示已更改的文件。据我所知,Visual Studio Code正在使用git bash中的git实现。 但这是次要要求。

我的配置

在所有计算机上,我都有以下 .gitconfig

[core]
    autocrlf = input
    editor = vim
    eol = lf
    filemode = false

我的问题

我克隆了一个仓库,外壳显示了不同的输出

git bash

pwd
/c/Users/user/git/docker-install
>git status
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   .gitattributes

no changes added to commit (use "git add" and/or "git commit -a")
>git diff
diff --git a/.gitattributes b/.gitattributes
old mode 100755
new mode 100644

cygwin的

user@machine /cygdrive/c/Users/user/git/docker-install
$ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

user@machine /cygdrive/c/Users/user/git/docker-install
$ git diff

user@machine /cygdrive/c/Users/user/git/docker-install
$

Git vagrant VM

[vagrant@vagrant docker-install (⎈ |minikube:default)]$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   .gitattributes

no changes added to commit (use "git add" and/or "git commit -a")
[vagrant@vagrant docker-install (⎈ |minikube:default)]$ git diff
diff --git a/.gitattributes b/.gitattributes
old mode 100755
new mode 100644
[vagrant@vagrant docker-install (⎈ |minikube:default)]$

我的.git属性在这个回购

* text=auto

我应该如何设置我的gitconfigs?

我阅读了很多文章,花了很多时间,但我仍然对如何设置环境感到困惑。

有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:0)

首先,Cygwin不是唯一的选择:WSL (Windows Subsystem for Linux)是另一个可以提供真正的Linux体验的选择。

第二,如前所述,Vagrant需要git config --global core.fileMode false来忽略chmod。

但是,第三,对于您知道要使用+ x(755而不是644)进行记录的文件,而不考虑操作系统(like in Windows,它将忽略执行许可),请键入({{3} }):

git add --chmod=+x -- afile