내 프로젝트를 git로 마이그레이션 할 계획이며 현재 Windows에서 어떤 것이 가장 좋고 / 또는 가장 안정적인 옵션인지 궁금합니다.
내가 모은 것에서 기본적으로 2.5 옵션이 있습니다.
참고 : IMO Cygwin 자체는 거의 모든 * nix 명령 줄 도구에 액세스 할 수 있기 때문에 큰 장점입니다. MSYSgit bash를 사용하면 이러한 도구의 일부만 액세스 할 수 있기 때문입니다.
그렇다면 어떤 옵션을 제안 하시겠습니까?
내 프로젝트를 git로 마이그레이션 할 계획이며 현재 Windows에서 어떤 것이 가장 좋고 / 또는 가장 안정적인 옵션인지 궁금합니다.
내가 모은 것에서 기본적으로 2.5 옵션이 있습니다.
참고 : 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에 포함을 . 그래도 autocrlf
false 로 설정하는 것을 잊지 마십시오 .
msysgit이 포함 된 패키지가 아닌 다른 모든 유닉스 명령이 실제로 누락 된 경우 "Cygwin의 경량 대안"이라는 이름 의 GoW (Windows의 Gnu) 릴리스를 다운로드하기 만하면 됩니다.
내 말은 : 130 유닉스 명령 s ...
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.autocrlf
를 false
. 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은 큰 혜택이며 그 자체로 가치가 있다고 말할 수 있습니다.
하지만 맥락은 중요합니다. 어떤 프로젝트입니까? 누가 사용합니까? 기타.
msysgit을 추천합니다. 특히 Git Extensions 와 함께 사용하는 경우 : 편집기 / diff / merge 도구와 같은 환경을 쉽게 구성 할 수 있으며 사용자 인터페이스에서 고급 git 작업을 수행 할 수 있습니다.
MSys의 cygwin 구현에서 심각한 버그가 발생했습니다. 일부 명령, 특히 rebase는 실패하기 쉽습니다. Cygwin은 나에게 훨씬 더 안정적이었습니다.
즉, 한 달 전이었고 그 이후로 개선되었을 수 있습니다.
Windows에서 Cygwin Git과 Msysgit을 모두 사용했습니다. Cygwin + Git을 사용하는 것이 좋습니다. Cygwin 1.7 (현재 베타 버전)은 git gui 및 gitk를 사용하는 동안 주요 뉘앙스 (적어도 저에게는)를 해결합니다. Cygwin의 이전 버전은 git-gui 또는 gitk에서 무언가를 할 때마다 10 개의 cmd 창을 열었습니다. 이것은 1.7에서 해결되었습니다. Cygwin의 강력한 쉘은 Linux 터미널의 많은 장점을 제공합니다.
즉, Msysgit은 상당히 발전했으며 Windows에서 정말 유용합니다. 그래도 몇 가지 문제에 직면했습니다.
권한 문제 : Windows에서 기본적으로 생성 된 일부 파일에는 Msysgit을 사용하는 동안 644로 변환 된 모드 755가 있습니다. 수정 된 파일로 표시됩니다. 체크인을 통해이 문제를 해결할 수 있습니다.
CRLF : 평소처럼 찾기 힘든 CRLF는 Windows에서 문제를 일으 킵니다. Msysgit은 파일이 수정 된 것으로보고 할 수 있습니다. Msysgit을 설치하는 동안 "줄 끝을 변경하지 않고 그대로두기"(정확한 텍스트를 잊어 버림)를 선택하면이 문제를 해결할 수 있습니다.
데몬 : 그래도 Msysgit에서 git 데몬을 설정하는 것이 여전히 어렵습니다.
Cygwin이 원하는 다른 도구가 아닌 git 만 원하기 때문에 CygWin에 대한 예약 이 있습니다. 일반적으로 Windows 컴퓨터가 Windows 컴퓨터처럼 작동하기를 원하고 CygWin은 완전히 다른 것을 치고 싶어합니다. 단지 킥을 위해 * nix 기능을 두드려서는 안됩니다.
문제는 명령 줄과 같은 * nix를 사용하고 싶다면 Linux 컴퓨터로 이동하여 대신 해당 컴퓨터에서 작업합니다. 가상 컴퓨터 와 원격 데스크톱 은 요즘 매력적으로 작동하며 개발자가 충분히 액세스 할 수 있습니다.
CygWin을 사용하려면 합법적 인 이유가 있어야합니다. git을 사용하는 경우 대신 MSysGit을 사용하는 것이 좋습니다 . 번들로 제공되는 gitk 및 git-gui 도구와 잘 작동합니다. msysgit을 사용하여 Eclipse와 Visual Studio에서 작업 해 왔으며 매력적으로 작동합니다.
내가 지금 기다리고있는 유일한 것은 git 용 으로 완벽하게 작동하는 Tortoise 클론입니다 .
당신은 단순히 Windows에서 하나 개의 시나리오가 있습니다 Cygwin을 통해 힘내를 사용하는 : 당신은 1.5보다 SVN 클라이언트 버전 이상 예상하는 SVN 서버에 대해 힘내을 사용하고자 할 때입니다. 'mergeinfo'인수가 없을 때 커밋을 차단하는 SVN 사전 커밋 후크가 있으며 'mergeinfo'인수는 버전 1.5부터 SVN에서만 기본값입니다. msysGit의 문제점은 이전 SVN 버전 (1.4.6)에 대해 빌드되었으므로이 경우 성공적으로 커밋 할 수 없다는 것입니다. 그러나 Cygwin의 Git을 사용하면 새로운 SVN 버전에 대해 빌드되므로 가능합니다.