Mercurial이 Git보다 쉬운 이유는 무엇입니까?


204

비교를 살펴보면 기능 세트 사이에 1 : 1 매핑이있을 수 있습니다. 그러나 종종 인용되는 말은 "수은이 더 쉽다"는 것입니다. 이 진술의 근거는 무엇입니까? (만약에 어떠한)


21
이상하게도 Mercurial이 더 쉬웠다는 이야기는 들어 본 적이 없습니다. 나는 Git에 대한 더 많은 문서를 발견했다.
Nic

16
리누스에 의해 만들어 졌기 때문에?
직업

124
이곳에서 성전을 보냈지 만 Windows 사용자는 Mercurial의 환영을 받고 Git의 패배자처럼 취급했기 때문에 Mercurial이 Git보다 사용하기 쉽다는 것을 알았습니다. 저는 제가 의인화하는 소프트웨어라는 것을 알고 있으며, Windows에서 완벽하게 사용할 수 있다는 것을 알고 있습니다.
Carson63000


11
Github이 존재하지 않거나 유명한 프로젝트가 많지 않은 경우 Git을 사용하는 사람이 얼마나 될까요?
Chris S

답변:


240

적절한 예 : 모든 이전 커밋에서 사용자 이름을 변경한다고 가정 해 봅시다. 여러 가지 이유로이 작업을 여러 번 수행해야했습니다.

힘내 버전

git filter-branch --commit-filter '
        if [ "$GIT_COMMITTER_NAME" = "<Old Name>" ];
        then
                GIT_COMMITTER_NAME="<New Name>";
                GIT_AUTHOR_NAME="<New Name>";
                GIT_COMMITTER_EMAIL="<New Email>";
                GIT_AUTHOR_EMAIL="<New Email>";
                git commit-tree "$@";
        else
                git commit-tree "$@";
        fi' HEAD

머큐리 버전 :

authors.convert.list 파일 :

<oldname>=<newname>

명령 줄 :

hg convert --authors authors.convert.list SOURCE DEST

이제 어느 것이 더 사용하기 쉬운 것입니까?


참고 : 저는 Git과 함께 2 년 동안 일한 적이 있었기 때문에 "나는 그것을 싫어합니다. 2 초 안에 얻지 못했습니다."

나를 위해, 그것은 유용성입니다. Git은 리눅스 방식의 일을하는 리눅스 지향적입니다. 즉, 명령 줄, 매뉴얼 페이지 및 스스로 알아내는 것을 의미합니다. GUI가 매우 열악했습니다 (참고 : 약 1 년 전부터 msysGit을 기반으로하고 있습니다). 간신히 사용할 수있었습니다

명령 줄이 더 나빴습니다. Linux 지향 프로그램이기 때문에 Windows에서는 사용하기가 매우 어려웠습니다. 네이티브 포트 대신 git을 MinGW (Think cygwin)로 감싸서 작업하기가 훨씬 어려웠습니다. MinGW는 Windows 명령 프롬프트가 아니며 다르게 작동합니다. 이것이 Git과 함께하는 유일한 방법이라는 것은 미친 짓입니다. Linux에서도 직선 명령 행으로 작업하는 것이 유일한 방법 인 것 같습니다. RabbitVCS와 같은 프로젝트가 도움이되었지만 강력하지는 않았습니다.

커맨드 라인 중심의 접근 방식과 리눅스 프로그램은 거의 모든 하우투 가이드, 도움말 문서 및 포럼 / QA 질문이 위와 같은 괴물 명령을 실행하는 데 의존한다는 것을 의미했습니다. 기본적인 SCM 명령 (commit, pull, push)은 복잡하지 않지만 더 복잡 해짐에 따라 기하 급수적으로 증가합니다.

나는 또한 많은 OSS git 사용자가 Github 주위에 매달려있는 곳을 싫어합니다. 처음으로 github 페이지를 방문하면 가능한 모든 작업이 수행됩니다. 나에게 프로젝트 git 페이지 는 혼란스럽고 무섭고 지나치게 강력 해 보입니다. 프로젝트가 무엇인지에 대한 설명조차도 아래로 내려갑니다. Github은 이미 전체 웹 사이트가 설치되어 있지 않은 사람들을 해칩니다. 그것의 이슈 트래커 또한 끔찍하고 혼란 스럽다. 기능 과부하.

Git 사용자도 매우 컬트 한 것처럼 보였다. Git 사용자는 항상 DVCS가 더 나은 "거룩한 전쟁"을 시작한 것으로 보이며, 따라서 Mercurial 사용자는 자신을 방어해야합니다. http://whygitisbetterthanx.com/ 과 같은 사이트 는 오만함과 거의 "내 소프트웨어 사용 또는 죽어"정신을 보여줍니다. X를 알지 못하고, X를 미리 사용하거나, Windows를 사용하는 등 여러 가지 도움을 받기 위해 여러 번 도움을 받았습니다.


반면에 머큐리얼은 더 친절한 접근법을 향해 가고있는 것 같습니다. 그들의 홈페이지Git 's 보다 새로운 사용자에게 훨씬 더 친근 해 보인다 . 간단한 Google 검색에서 5 번째 결과는 Mercurial에 매우 유용한 GUI 인 TortoiseHg입니다. 그들의 전체 접근 방식은 단순 해 보입니다.

Mercurial을 사용하면 SSH 넌센스가 없습니다 (SSH는 Windows에서는 지옥입니다). 머큐리얼은 잘 작동합니다.

TortoiseHg는 실제로 유용한 기능을 제공하는 실제로 사용 가능한 인터페이스를 제공합니다 (최근에는 점점 커지고 있음). 옵션은 필요한 것으로 제한되어있어 거의 사용되지 않는 혼란과 옵션을 제거합니다. 또한 많은 괜찮은 기본값을 제공합니다

신규 이민자들에게 매우 친숙한 Mercurial은 매우 쉽게 픽업 할 수있었습니다. 다른 브랜칭 모델 및 히스토리 편집과 같은 더 복잡한 주제조차도 매우 쉽게 따라갈 수있었습니다. 나는 머큐리얼을 빠르고 고통없이 집어 들었다.

Mercurial은 약간의 설정만으로도 처음으로 작동합니다. 모든 OS에서 TortoiseHg를 설치하고 다른 Guis를 찾지 않고도 원하는 모든 기능 (주로 컨텍스트 메뉴 명령)을 얻을 수 있습니다. 또한 SSH 설정이 누락되었습니다 (다른 가이드 중 절반은 Putty, Plink 및 Pagent를 사용하고 나머지 절반은 ssh-keygen을 사용한다고 말합니다). 신규 사용자의 경우 TortoiseHg를 설치하는 데 몇 분이 걸리고 Git은 많은 인터넷 검색을 통해 30 분에서 1 시간이 걸립니다.

마지막으로 온라인 저장소가 있습니다. Githubs에 해당하는 것은 BitBucket이며 위에서 설명한 몇 가지 문제가 있습니다. 그러나 Google 코드도 있습니다. Google 코드 프로젝트 로 이동 하면 기능 과부하가 발생하지 않으며 깔끔한 인터페이스가 제공됩니다. Google 코드는 온라인 리포지토리 / 웹 사이트 콤보로 기존 사이트 설정이없는 OSS 프로젝트에 실제로 도움이됩니다. 프로젝트 코드 웹 사이트로 Google 코드를 꽤 오랫동안 사용하는 것이 매우 편할 것입니다. 꼭 필요한 경우에만 웹 사이트를 구축하십시오. Github의 거의 쓸모없는 이슈 트래커와 Bugzilla의 괴물 사이에 잘 ​​어울리는 이슈 트래커도 강력 합니다.

머큐리얼은 매번 처음으로 작동합니다. 힘내가 내 방식에 들어가서 내가 더 많이 사용할수록 분노합니다.


6
해설자 : 의견은 설명을 확대하기위한 것이지 확장 된 토론을위한 것이 아닙니다. 해결책이 있다면 답을 남기십시오. 솔루션이 이미 게시 된 경우 투표하십시오. 이 질문에 대해 다른 사람들과 논의하고 싶다면 chat을 사용하십시오 . 자세한 내용 은 FAQ 를 참조하십시오.

1
IntelliJ IDEA 및 Xcode 4는 각 플랫폼에서 Git과 훌륭하게 통합되며 일상적인 작업을 위해 명령 줄을 사용할 필요가 없습니다.

4
Windows에서 GIT를 사용하고 싶을 때 tortoiseGIT이 훨씬 더 좋습니다. 여전히 SSL 키를 처리해야하며 설치 프로세스가 원활하지 않지만 완료되면 쉽게 작동합니다.
Arkh

2
Git Extensions 개인적으로 Windows에서 TortoiseHG보다 탐색하고 작업하기가 훨씬 쉬우 며 git에서는 명령 줄을 1 개만 사용했습니다.
KallDrexx

1
"MinGW는 Windows 명령 프롬프트가 아니며 다르게 작동합니다. 이것이 Git을 사용하는 유일한 방법이라는 것은 미친 일입니다." msysgit 설치 및 옵션 2를 사용하여 Windows 명령 행에서 실행합니다. 잘 작동합니다. 작동하지 않는 몇 가지 사항 (예 : 캐럿, DOS의 줄 연속 문자)이 있지만 제대로 작동하는 항목 (예 : 물결표)이 있습니다. 나는 커맨드 라인 애호가가 아니거나 적어도 Git을 배우기 전에는 아니었지만 커맨드 라인으로 Git을 사용하는 것은 정말 쉽습니다. 뭔가 빠졌습니까?
Kyralessa

80

힘내 대 Mercurial

Mercurial은 일반적으로 Git보다 간단하고 배우기 쉽다고 생각됩니다. 결과적으로 Git이 더 유연하고 강력하다는 인식이 있습니다. 이는 부분적으로 Git이 더 낮은 수준의 명령을 제공하는 경향이 있지만 기본 Mercurial 은 고급 기능을 숨기고 사용자가 원하는 고급 기능을 활성화하기 위해 수은 구성 파일을 편집 할 수 있도록하기 때문입니다. 이것은 종종 Mercurial에서 고급 기능을 사용할 수 없다는 인식으로 이어집니다.

힘내 개념

Mercurial은 항상 인터페이스 측면에 더 중점을 두어 원래 배우기가 더 쉬워졌습니다. Git과 비교하여 Mercurial을 유용한 방식으로 조작하려면 더 깊은 이해가 필요합니다. 장기적으로, 그러한 캡슐화 는 Mercurial에게 실제보다 덜 강력하고 기능적이라는 잘못된 외관을 제공했습니다.


73
따라서 Mercurial은 고급 기능 만 숨기고 GIT는 모든 기능을 숨 깁니다 ... ;-)
awe

4
힘내는 않습니다 더 많은 전력을 가지고있다. 예를 들어 git 's HEAD ~ 1 과 같은 것은 없습니다 . Mercurial은 p (x)를 가지는데, 이는 여러 지점에 걸쳐 있으며 아무 소용이 없습니다. Hg에는 무대가 없습니다. 밀 때 모든 가지를 밀어야합니다. Mercurial은 histedit, shelf 및 rebase와 같은 모든 플러그인을 사용하더라도 유연하지 않습니다. Git의 커맨드 라인도 더 좋으며, 사용자에게 힌트를 주지만 수은은 그렇지 않습니다. 나는 직장에서이 약간 부서지기 쉬운 DVCS를 사용해야하며, 수은에 내가 원하는 것을 할 힘이 부족한 상황에 처하게되었다.
Keyo

22
@Keyo : Mercurial은 수정본을~ 참조하십시오 . 스테이징 영역이 없지만 훨씬 강력한 MQ를 사용하여 에뮬레이션 할 수 있습니다. git에서 아는 것을 고수하는 대신 도구를 사용하는 법을 배우십시오.
Idan K

22
@Keyo : 푸시 할 때 Mercurial로 모든 브랜치를 푸시 할 필요는 없습니다. 특정 분기 ( hg push --branch BRANCH) 또는 특정 개정 ( hg push --rev REV) 까지 푸시 할 수 있습니다 . hg help push더 많은 옵션을 참조하십시오 .
Regent

1
참고로, 레코드 확장을 사용하여 스테이징 영역의 상당 부분을 얻을 수 있습니다 . OTOH, 나는 선반 확장 (Baazar의 "shelve"명령을 모델로하고 "git stash"에 가깝습니다)이 준비 영역을 사용하는 대부분의 목적을 제공 한다고 생각합니다 .
brandizzi 2016 년

47

맥락 : 저는 매일 Mercurial (업무용)과 Git (부업 프로젝트 및 오픈 소스 용)을 사용합니다. 나는 주로 IDE가 아닌 텍스트 기반 도구를 사용하며 Mac에 있습니다.

일반적으로 Mercurial은 작업하기가 더 쉽습니다. 내가 찾은 몇 가지 사항은 Mercurial을 더 쉽게 만듭니다.

  1. 인덱스 부족. 인덱스는 Git의 많은 기능을 가능하게하는 강력한 도구이지만 정기적으로 수행하는 많은 작업에 단계를 추가하는 추가 계층이기도합니다. Mercurial의 워크 플로우는 svn과 유사합니다.
  2. shas 대신 개정 번호. 이것은 내가 Mercurial에서 일상적인 명령으로 작업하는 것을 훨씬 쉽게 만드는 작은 일입니다. 명령을 작성하는 동안 rebase, merge 등을 수행하는 동안 약간의 수정 번호를 머리에 밀어 넣는 것이 더 쉬워집니다.
  3. 지점. 커밋의 이름을 지정하여 Git의 브랜치 접근 방식은 다른 버전 제어 시스템과는 강력하고 실질적으로 다릅니다. 특정 일이 훨씬 쉬워집니다. Mercurial의 접근 방식은 svn 사고와 조금 더 잘 일치하며 지점 기록을 시각적으로 쉽게 이해할 수 있습니다. 이것은 단지 선호 일 수 있습니다.

6
지수 언급에 +1; 나는 인덱스를 생각하고 그 상호 작용은 자식 어려운 수은보다 배울 수 있습니다 것.
Sean McMillan

18
hg에 해당 git지점 실제로이라고합니다 bookmarks. 내가 아는 한 hg지점에는에 해당하는 것이 없습니다 git.
Hank Gay

6
나는 같은 상황에, 직장에서 수은을 사용하고 집에서 자식을한다. 머큐리 브랜치는 나에게 다소 성가시다. 나는 개인 브랜치를 가지고 있고 내가 좋아할 때 그들을 밀고 싶다. Mercurial은 선반이나 추가 저장소를 사용하도록 강요합니다. 수정 번호는 어리석은 해시입니다. 무대는 git에서 훌륭합니다. 나는 git의 힘을 정말로 놓쳤다. 나는 몇 가지 플러그인으로 몇 가지 일을했지만 분기는 실제로 나를 귀찮게합니다.
Keyo

6
@ Keyo-내 경험에 따르면 git분기는 분기의 하위 집합입니다 hg. 에서 hg당신이 가질 수있는 모두의 이름과 이름 (위상) 지점, 심지어 같은 방식으로 이름이 지점을 관리 할 수있는 git책갈피를 사용하여. 스테이징 영역의 요점을 본 적이 없습니다. 원치 않는 변경 사항을 보류 한 다음 코드를 커밋하기 전에 코드를 컴파일하고 완료했는지 확인하십시오. 그런 다음 선반을 풀고 계속할 수 있습니다. 또한 Charles Bailey의 " Massaging Hunks
Mark Booth

7
@Keyo : Mercurial에서는 개인 브랜치를 '북마크'라고합니다. 루트 개정으로 업데이트하고 hg bookmark keyo-stuff작업을 수행 hg commit한 다음 결국에는 hg push -B keyo-stuff. 개정 번호가 마음에 들지 않으면 사용하지 마십시오. Mercurial은 개정 번호를 수락 할 때마다 해시를 수락 할 것이라고 생각합니다. 말할 것도없이, Mercurial의 기능 부족으로 Mercurial을 강타한 여러분의 의견은 무지하고 공격적인 것으로 나타났습니다. Git 사용자의 고정 관념에 대해 많은 일을하지 않습니다!
Tom Anderson

29

이것은 매우 주관적이며 한 사람에서 다른 사람에게 달려 있지만 그렇습니다. VCS를 완전히 처음 접하는 사람이나 "구식"VCS 중 하나에서 온 사람에게 갈 것입니다. Mercurial은 더 쉬워 보일 것입니다.

예를 들어, 파일을 추가하고, Hg에 색인이 존재하지 않고, 가장 오래된 예로 일부 이전 개정으로 돌아가서 (업데이트 및 커밋하기 만하면 됨) 용이합니다. 이제 한 시스템의 대부분의 기능을 다른 시스템에서 에뮬레이션 할 수 있지만 그 반대의 경우도 있지만 Git에 대한 지식이 필요하지만 Mercurial에서는 기본값 (사용자가 호출 할 수있는 경우)이 "사용자 친화적"입니다. 그 작은 것들-여기 저기 스위치, 하나의 명령에서 명백한 행동 등 ...이 것들이 합쳐지고 결국 하나의 시스템이 다른 시스템보다 사용하기가 더 쉽습니다.

답을 완성시키기 위해; 나는 git을 사용하지만 "새로운 사용자"에게 VCS를 추천 할 때는 거의 항상 Mercurial을 추천한다. 처음 손에 들어 왔을 때 매우 직관적 인 느낌이 들었습니다. Mercurial이 Git보다 분당 wtf / 분이 적게 생성되는 것은 저의 경험입니다.


"이것은 매우 주관적"인 경우 "1 wtf / 분 미만"인 경우 +1입니다. 그것은 매우 주관적이지 않습니다 ... 왜 사람들이 여전히 UI의 차이점이 주관적이라고 생각하는지 모르겠습니다. 수은을 취하고 md5 해시 명령을 사용하면 일부 사람들이 md5 해시를 원래보다 더 직관적이라고 생각할 수 있습니다. (내가하지 희망). Git도 마찬가지입니다. 자식에 대한 경험이 수은보다 상당히 실질적이라면 Git은 수은보다 더 쉽다.
weberc2

17

나는 이것이 간단하다고 생각합니다. Mercurial은보다 친숙한 구문을 가지고 있으며 (특히 SVN 사용자를 위해) 상당히 잘 문서화되어 있습니다. Git 구문에 익숙해지면 다른 것만 큼 쉽게 사용할 수 있습니다.


7
아니. "다른 구문"이라고하는 워크 플로우 단계가 너무 많습니다. Git을 사용하려면 조작하는 기본 모델과 git 인덱스의 모든 상태를 이해해야합니다. SQL과 Pascal은 같은 일에 대한 두 가지 다른 구문이라고 말하면 똑같이 잘못 될 것입니다. Git은 DVCS 기능을 갖춘 파일 시스템 컨텐츠 버전 관리 시스템입니다. Mercurial은 GIT가 수행하는 모든 파일 시스템 콘텐츠 버전 관리 작업을 수행하지는 않으며 DVCS 사용자에게 필요한 하위 집합 만 수행하는 DVCS입니다.
Warren P

9

이에 대한 인식은 시간이 지남에 따라 변할 수 있습니다. Mercurial은 매우 잘 설계되어 있으며 Git도 마찬가지입니다. Mercurial은 배우기가 더 쉬워 보였고 (적어도 나에게는 그랬다), Git에서 나는 어려움을 겪었다. 나는 파이썬과 루비를 배우려고 노력했고 파이썬으로 더 빨라졌습니다. 그렇다고해서 파이썬이 루비보다 항상 어디서나 낫거나 심지어 나에게 더 낫다는 의미는 아닙니다. 그것은 내가 배우고 고집 한 것입니다. 프로그래머는 종종 개인적인 취향에서 거룩한 전쟁을합니다. 다른 인간들도 그렇게합니다.

나는 Git에 대해 열린 마음을 가지려고 노력하는 수은 사용자이며, Mercurial과 마찬가지로 "내가 가장 좋아하는 것"이 ​​아니었다는 것을 자유롭게 인정한다. 나는 Git이 정말로 정말로 좋다고 생각한다.

GIT / 수은의 복잡성에 대한 반대 사례 : 멋진 GIT 지원은 Mac의 XCode에 내장되어 있습니다. GIT보다 Mercurial에서 XCode를 사용하기가 쉽지 않습니다.

지금까지 GIT에 대한 나의 경험은 혼란스럽고 길을 잃었고 문서를 사용하는 동안 더 많은 문서를 참조해야합니다. 나는 많은 문서가 작성되었다고 믿지만, 그것을 "파고들"수 있었던 것은 아무것도 없다. 둘째, Python에서 Mercurial을 쉽게 수정하고 확장 할 수 있으며 Python을 능숙하게 사용하면서 누구나 파이썬을 빨리 배울 수 있으므로 나에게 유리합니다. 또한 C를 알고 C로 파이썬 확장을 작성하므로 언젠가 필요하다면 C로 Git 확장을 쉽게 작성할 수 있다고 가정합니다.

사용 편의성은 정량화하기 쉬운 것이 아닙니다. 그것은 거기에 있으며, 그것이 완전히 주관적이라고 생각하지는 않지만, 우리는 좋은 객관적인 측정 기술을 가지고 있지 않습니다. 사용하기 쉬운 장치는 무엇입니까? 밀리 아이팟?

나는 100 % 프로 머큐리얼, 100 % 안티 깃이 될 정도로 당당하지 않습니다. 나는 현재 Mercurial, Windows 및 Linux에서 더 편안하고 더 많은 Mac 작업을 시작할 때 XCode + GIT를 고수 할 것으로 기대합니다.

업데이트 2013 : 나는 지금 내가이 망할 놈의 같은 가지고 있었으면 좋겠다 일부 기능을 찾을 의욕과 충분히 GIT를 사용하고 병합 전략에 대한 질문을. 실제로 힘내는 배우기 어려우면 놀랍고 때로는 복잡합니다.


7

IMO가 신규 사용자를 Git에서 제외시킬 수있는 몇 가지 사항이 있습니다.

  1. Git 문화는 더 명령 중심적입니다. 두 도구가 명령 줄에 너무 집중하는 경향이 있지만 (여러 번 말했듯이 명령 줄 지침은 강력하고 유창하지만 좋은 마케팅 전략은 아닙니다 ) Git의 경우가 훨씬 낫습니다. Mercurial은 TortoiseHg에 사실상 표준 GUI 도구를 가지고 있지만 Mercurial 홈페이지의 Windows 사용자를위한 기본 다운로드 옵션이지만 Git은 경쟁이 치열한 GUI 프론트 엔드 (TortoiseGit, Git Extensions, gitk 등)를 가지고 있습니다. Git 웹 사이트에서 볼 수 있습니다. (빨간색 라벨에 검은 색 텍스트? C'mon, TortoiseGit, 그보다 더 잘할 수 있습니다!) Git 커뮤니티에는 GUI 도구를 사용하는 사람들이 적절한 소프트웨어 개발자가 아니라는 훨씬 더 널리 퍼진 태도가 있습니다.

  2. Git은 고급 사용자에게는 완벽한 기본 설정을 제공하지만 새로운 사용자에게 위협이되지 않는 경우에는 놀라 울 것입니다. 예를 들어 병합과 같은 작업 자동화에 대해 훨씬 더 적극적입니다 (예를 들어, git pull은 자동으로 병합 및 가능한 경우 커밋). 완전 자동화 된 병합의 경우가 있지만, 경험이 부족한 사용자는 병합에 대한 두려움이 있으며, 소스 코드를 최대한 활용하기 전에 도구에 대한 신뢰를 얻을 수있는 기회가 주어져야합니다.

  3. 문서화 및 고유 한 복잡성 :

    $ hg help log | wc -l
    64
    $ git help log | wc -l
    912
    

3
실제로, 나는 64의 도움을주기 위해 912 줄의 도움을 선호합니다.
Dysaster

10
사실, 나는 직관적이고 매끄럽고 UI가 우선적으로 도움이 필요하지 않은 UI를 선호합니다.
jammycakes

2
GUI와 도움이 필요합니다. :) 나에게 직관적으로 보이는 것은 다른 사람의 혼란입니다.
Dysaster

1
물론 도움이 필요하면 따라 가기 쉬워야합니다.
jammycakes

3
나는 새로운 비유를 생각했다. Git은 C ++ (죄송합니다)와 Mercurial은 Pascal과 같습니다. 암시 적이며 파스칼 (또는 Mercurial)에서 한 가지 방법으로 만 수행 할 수있는 것은 C ++ (및 Git)에서 19 가지 방법으로 명시 적으로 수행 할 수 있습니다. 어떤 사람들은 더 많은 버튼과 레버가있는 powertools를 선호하며 Git입니다.
Warren P

3

내가 생각할 수있는 한 가지는

git add .
git commit -am "message"

vs.

hg ci -Am "message"

git commit -a새로 만든 파일을 추가하지 않습니다. hg ci -A즉, git와 함께 두 개의 명령이 필요한 작업은 Mercurial에서 하나의 명령으로 수행 할 수 있습니다. 다시 말해 "낮은 타이핑"이 반드시 "사용자 친화적"이라는 의미는 아닙니다.


11
워크 플로에서 새 파일을 자동으로 추가하는 것이 실제로 바람직하지 않다는 것을 종종 알 수 있습니다. git commit -a주어진 커밋에 대해 추가되거나 추가되지 않는 것을 쉽게 제어 할 수 있기 때문에 단순히 작동 하는 방식을 선호 하게되었습니다. (실제로 svn ci커밋에 관련없는 자료를 추가하는 것을 피하기 위해 모든 사람 에 대해 개별 경로 이름을 지정하는 것은 드문 일이 아닙니다 .)
greyfade

3
충분히 공평하지만 플래그가 hg ci없으면에 해당 하는 것으로 생각합니다 . 나는 git을 hg보다 많이 사용했기 때문에 100 % 확실하지 않습니다. -Agit commit -a
Zhehao Mao 2016

hg ci== 확인했습니다 git commit -a.
Zhehao Mao 2016

그러나 hg commit으로 특정 파일을 지정하면 원하지 않는 파일을 가져 오는 것을 피할 수 있습니다. 이 컨트롤을 원하는 경우가 드물게 작동합니다.
Alex Miller

1
왜 "git add." 그리고 "git commit -am"? 모든 것이 색인에 이미 추가되지 않았습니까?
jacobangel

3

이 때문에.

힘내는 수은보다 내장을 훨씬 더 많이 노출시킵니다. 수은을 수거 한 후 몇 분 안에 행복하게 수은을 사용할 수 있지만, 몇 달 동안 레슬링을 한 후에도 여전히 git은 여전히 ​​어려움을 겪습니다. ). 나는 커맨드 라인과 대부분 리눅스에서 둘 다 사용하고 있으므로 이것은 커맨드 라인 인터페이스에 대한 혐오가 아닙니다.

간단한 예제 중 하나는 git에 비해 수은에 필요한 상대적으로 적은 플래그와 명령 줄 인수입니다. git의 스테이징 영역과 add 명령의 동작은 필요 이상으로 복잡성을 더합니다. 재설정, 체크 아웃 및 되돌리기의 트리오와 여러 순열은 엄청난 복잡성을 더해 주므로 수은에 대한 되돌리기 및 업데이트의 직접적인 특성을 볼 때 매우 불필요합니다.

Hginit 에 대한 위의 의견에도 동의합니다 . 수은을 이해하기가 훨씬 쉬워졌습니다. 잘 작성되었으며 이해하기 매우 쉽습니다. git 용으로 작성된 문서가 없습니다. 우선, Scott Chacone (git에 관한 대부분의 문서 / 책을 한 손으로 쓴 사람)이 특히 혼란 스럽습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.