program story

Windows 아래 Git : MSYS 또는 Cygwin?

inputbox 2020. 10. 8. 07:57
반응형

Windows 아래 Git : MSYS 또는 Cygwin?


내 프로젝트를 git로 마이그레이션 할 계획이며 현재 Windows에서 가장 안정적인 옵션이 무엇인지 궁금합니다.

내가 모은 것에서 기본적으로 2.5 옵션이 있습니다.

  1. MSYSgit
  2. Cygwin의 자식
  3. (일명 2.5) Cygwin 프롬프트의 MSYSgit (Cygwin git이 이미 설치되어있는 경우).

참고 : IMO Cygwin 자체는 거의 모든 * nix 명령 줄 도구에 액세스 할 수 있기 때문에 큰 장점입니다. MSYSgit bash를 사용하면 이러한 도구의 일부만 액세스 할 수 있기 때문입니다.

그렇다면 어떤 옵션을 제안 하시겠습니까?


편집 (2 년 후 : 2014 년 10 월)

Johannes Schindelin은 방금 msysgit이 단계적으로 제거 되었다고 설명했습니다 (2014 년 10 월) .

이제 Windows SDK 용 경량 Git 이 있습니다. 기본적으로 패키지 관리자 mingw-get을 통해 관리되는 표준 MinGW / MSys 시스템입니다.

우리는 단지 이름이 "msysGit"밖으로 단계 (뿐만 아니라하기로 결정 GitHub의 조직 같은 이름의 )에 대한 작업 Windows 용 힘내 합니다 (와 GitHub의 조직에 대응) , 및 설치 프로그램의 이름 "Windows 용 힘내"사용 목적 Windows 개발자 용 Git를 대상으로하는 개발 환경의 경우 "최종 사용자"및 "Windows SDK 용 Git"에서).


편집 (3 년 후 : 2012 년 4 월)

MsysGit (현재 GitHub에 있음 )은 Git 세계에서 가벼운 빠른 시작을 원하는 경우 사용할 수있는 방법입니다. 아카이브 압축을 풀고 실행 git-cmd.bat하거나 git-bash.bat완료하면됩니다.
그것의 최신 버전 (1.7.10 2012 에이프릴) 이제 포함 UTF-8에 대한 지원GitExtension에 포함을 . 그래도 autocrlffalse 로 설정하는 것을 잊지 마십시오 .

msysgit이 포함 된 패키지가 아닌 다른 모든 유닉스 명령이 실제로 누락 된 경우 "Cygwin의 경량 대안"이라는 이름 GoW (Windows의 Gnu) 릴리스를 다운로드하기 만하면 됩니다.
내 말은 : 130 유닉스 명령 ...

Cygwin은 그의 대답 에서 incrementor아래 에서 언급했듯이 대형 Git 저장소 의 전송 속도와 같은 특정 경우에만 백업 솔루션이어야합니다 .


2012 년 6 월 : GitHub 와 상호 작용하려는 경우 이제 http://windows.github.com이 있습니다 ( " Windows 용 GitHub 디자인 "참조 ).
ssh 키를 구성 할뿐만 아니라 생성 된 공개 키를 GitHub 프로필에 추가 할뿐만 아니라 모든 git 작업에 대해 MsysGit을 설치합니다.


원문 답변 (2009 년 4 월)

최신 버전의 MsysGit에는 문제가 없습니다
. 옵션 2를 사용합니다. 즉, PATH 환경 변수에 git \ bin 디렉토리 만 추가하고 일부 내장 Windows 도구를 재정의하지 않습니다.

Notepad ++WinMerge (또는 DiffMerge)같은 외부 도구를 정의했습니다.

MsysGit1.6.2 +에서 ' '명령 이 포함되어 있기 때문에 svn2git 과 같은 스크립트를 성공적으로 실행했습니다 git svn.

그리고 마지막으로 MsysGit1.6.2.3에 finally ' git filter-branch'명령 이 포함 되기를 기대합니다 ! (느린 버전의 필터 브랜치이지만 여전히).

Unix 명령의 경우 GnuWin32 coreutils 패키지 를 설치하고 필요할 때만 사용 하는 것을 선호 합니다.

그래서 대체로 Cygwin 레이어를 사용하지 않고 Windows 기반 릴리스 MsysGit에서 Git을 매우 잘 실행했습니다.


예. 오래된 질문. 새로운 답변 :

우리는 대규모 배포에서 약 2 년 동안 MSYSgit을 사용하고 있습니다. 로컬 git 저장소 서버에서의 전송 속도는 5MiB / s 미만으로 제한되었습니다. 이 문제에 대한 이전 조사에서는 MSYS 개발자가 Windows XP 및 Windows 7 보안에있는 명령 프롬프트 / bash 셸에서 연결을 제한하는 문제가 있음을 확인했습니다. 사실 이것은 문제가되지 않는 것 같습니다.

Darrell Mozingo의 블로그 게시물을 발견 하고 Cygwin 설치 만 사용하여 대규모 (많은 GiB) 저장소의 복제본을 테스트했습니다. 전송 속도는 30MiB / s 범위였습니다. 문제는 MSYSgit이 2007의 골동품 OpenSSH 바이너리를 사용한다는 것입니다.

이를 위해 문제가 해결 될 때까지 Cygwin으로 전환하는 것이 좋습니다 (git 버전이 약간 뒤처졌지만). 또한 Cygwin이 더 안정적이며 펄이 메모리 부족을 일으킬 가능성이 적다는 것을 알았습니다.


나는 MSYS와 Cygwin 버전의 git을 모두 사용해 보았습니다. 솔직히 말해서, 두 가지 경험 중 특히 좋은 경험을 찾지 못했습니다. 나는 git이 아직 Windows에 대한 준비가되어 있지 않다고 생각합니다.

즉, MSYS 버전에서 발견 한 한 가지 문제는 (이진이 아닌) 파일의 줄 끝을 UNIX 스타일 (줄 바꿈)에서 DOS 스타일 (캐리지 리턴 / 줄 바꿈)로 변환한다는 것입니다. 이것을 버그 또는 기능이라고 생각할 수 있지만 찾을 수있는 동작을 변경할 방법이 없습니다. (편집 : 구성 변수 core.autocrlffalse. Thanks Brian으로 설정합니다 .)

OTOH, git의 MSYS 버전에는 전체 X 서버를 설치하고 실행하지 않는 한 cygwin 버전에서 사용할 수없는 GUI 기능이 있습니다. (확인해 주신 Joce에게 감사드립니다.)

내 인상은 MSYS 버전이 더 인기가 있다는 것입니다. 비록 그것을 사용하기 위해 cygwin 생태계를 설치할 필요가 없기 때문일 수 있습니다. (동의합니다. cygwin은 매우 유용합니다.)

개인적으로 저는 Windows IMO를 더 잘 지원하는 Bazaar 또는 Mercurial 중 하나를 선택합니다.


Cygwin과 Msys Git은 모두 일반적인 사용 사례에서 상당히 잘 작동합니다. git-svn과 같은 스크립트를 사용하려면 Cygwin이 더 나은 방법입니다. 드디어 Linux로 넘어간 오래된 Windows 사용자로서 Cygwin은 큰 혜택이며 그 자체로 가치가 있다고 말할 수 있습니다.

하지만 컨텍스트는 중요합니다. 어떤 프로젝트입니까? 누가 사용합니까? 기타.


나는 또한 두 세계 (CygWin 및 MSysgit)를 테스트했으며 내 경험은 MSysgit bash에 몇 가지 단점이 있다는 것입니다. Cygwin이 동일한 git repo에서 정상적으로 처리하는 동안 git stash를 성공적으로 실행할 수 없습니다.

아직 심층 분석이 완료되지 않았습니다.


저는 현재 TortoiseGit과 함께 Msysgit을 사용하고 있습니다.

MsysGit UI는 내 마음에 들지 않으므로 TortoiseGit과 같은 익숙한 도구를 사용하고 명령 줄에서 작업 할 때 (대부분의 경우) Msysgit의 git 바이너리를 사용합니다.


msysgit을 추천하겠습니다. 특히 Git Extensions 와 함께 사용하는 경우 : 편집기 / diff / merge 도구와 같은 환경을 쉽게 구성 할 수 있으며 사용자 인터페이스에서 고급 git 작업을 수행 할 수 있습니다.


I have run into serious bugs in MSys's cygwin implementation: some commands, especially the rebase, were quite prone to failure. Cygwin's was much more stable for me.

That said, it was a month ago, might have improved since.


I have used both Cygwin Git and Msysgit with Windows. I would suggest using Cygwin + Git. Cygwin 1.7 (currently in beta) addresses a major nuance (at least for me) while using git gui and gitk. Earlier versions of Cygwin used to open 10s of cmd windows every time I do something in git-gui or gitk. This has been addressed in 1.7. Cygwin's powerful shell brings in a lot of the goodies of linux terminal as well.

That said, Msysgit has evolved quite a bit and is really useful in Windows. I faced a couple of issues though.

Permission issue: a few files created natively in windows had mode 755 which got converted to 644 while using Msysgit. This would show up as modified files. A checkin should fix this issue.

CRLF: The all elusive CRLF as usual creates issues in Windows. Msysgit might report files as modified. This can be fixed by selecting "Leave line endings unchanged" (forgot the exact text) while installing Msysgit.

Daemon: And yeah I'm still finding it tough to setup git daemon in Msysgit.


New answer to an old question ...

I'm using git 1.7.3 from a Windows 7 cmd shell, and it works great. I use a mix of git command line and git gui, and both have been working fine for months. We did have carriage return/line feed issues, exacerbated when we added Mac developers to the team, but these were resolved with ...

core.autocrlf=true
core.safecrlf=false

Not saying you shouldn't use a *nix-y shell, just that it isn't necessary.


I have reservations towards CygWin because I only want git and not any of the other tools that Cygwin wants to shove in. Normally you want your windows computer to work like a windows computer and CygWin wants to slap on something completely different. Slapping on *nix functionality just for the kicks is not to go.

The thing is, if I ever want to work with *nix like command line, I'd go over to my Linux machine and work on that computer instead. Virtual computers and remote desktops work like a charm nowadays and is accessible enough for developers.

There really needs to be a legitimate reason for you to be using CygWin. If it is just for using git I'd suggest you use MSysGit instead which is my preference. It works really well with the gitk and git-gui tools that are bundled. I've been working on both Eclipse and Visual Studio using msysgit and it works like a charm.

The only thing I'm waiting for now is a fully working Tortoise clone for git.


There is one scenario under Windows where you simply have to use Git via Cygwin: This is when you want to use Git against a SVN server, which expects SVN client versions higher than 1.5. There exist SVN pre-commit hooks which block commits when there's no 'mergeinfo' argument - and the 'mergeinfo' argument is default in SVN only since version 1.5. The problem with msysGit is, that it is build against an older SVN version (1.4.6), so you can't successfully commit in this case. But it is possible with Cygwin's Git, since it is build against newer SVN versions.


If you just want to do simple actions like push/pull/branching you could try SourceTree from Atlasian. A very simple and clear UI for Git command. However it has short coming.

If you need to use the command-line git tool, just get the Git for windows tool. It should be enough, unless you start looking in bash scripting.

참고URL : https://stackoverflow.com/questions/783906/git-under-windows-msys-or-cygwin

반응형