Как настроить git на windows с помощью cygwin, git bash и git в бродячей виртуальной машине? - PullRequest
0 голосов
/ 30 мая 2018

Мои настройки

Мы используем Windows 10 на работе.У меня была задача создать виртуальную машину разработки с Vagrant, которую мы все хотим использовать.

Мы монтируем наши папки git в виртуальную машину через монтирование Vagrant SSH, которое сейчас прекрасно работает.

Мы также используем Visual Studio Code в качестве редактора.

Моя цель

Я хочу использовать git в cygwin (для пользователей Windows) и git в ВМ без проблем.

И, конечно же, мы хотим использовать функцию кода Visual Studio для выделения измененных файлов.Насколько я понимаю, Visual Studio Code использует реализацию git из git bash.Но это вторичное требование.

Моя конфигурация

На всех компьютерах у меня есть следующее .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)]$

Мои .gitattributes в этом репо

* text=auto

Как мненастроить мои gitconfigs?

Я читаю много статей, провожу много времени, но все еще не понимаю, как нам настроить нашу среду.

Может ли кто-нибудь помочь мне в этом?

1 Ответ

0 голосов
/ 25 июля 2018

Во-первых, Cygwin - не единственный вариант: WSL (Подсистема Windows для Linux) - это еще один вариант, который предлагает настоящий опыт работы в Linux.

Второй, как уже отмечалось, git config --global core.fileMode false требуется в Vagrant для игнорирования chmod.

Но в-третьих, для файлов, которые, как вы знаете, вы хотите записать с + x (755 вместо 644), независимо от ОС ( как в Windows , которая игнорирует разрешение на выполнение), введите ( с Git 2.9.1 + ):

git add --chmod=+x -- afile
...