zepinos
18k
2018-12-26 14:06:41
15
4888

git 이 어렵다면 branch 가 어려운 것일 겁니다.


그래서 아래 사이트에서 git branch 관련해서 연습해보시길 권합니다.


https://learngitbranching.js.org/


svn 에서 적극적으로 branch 쓰는 분도 못본데다가 로컬/리모트로 나뉜 형태까지 추가되어서 더 적응이 안될 수 있습니다. 연습만이 살 길입니다.

26
21
  • 댓글 15

  • zepinos
    18k
    2018-12-26 14:41:59 작성 2018-12-26 15:08:55 수정됨

    역시나 볼프강 "아마데우스" 모차르트의 -1 테러가 시작되네요.


    눈물이 납니다. 호어호우 T.T

    5
  • ECMA
    523
    2018-12-26 14:49:24

    몇 년전에 팀의 svn -> git 전환을 주도한 적이 있는데 가장 생소하게 생각하시는 부분이 svn은 파일을 고칠 수 있는데 git은 왜 그게 안 되냐 였습니다. svn 은 파일 단위라면 git은 file이 아니라 commit 단위로 스냅샷이 떠져서 그 변경분이 기록된다는 메커니즘이 받아들여지면 (=svn 의 파일 단위로 뭔 짓을 하려는 생각에 마음을 비우면) 좀 편해지는 거 같습니다 ㅎㅎㅎ

    2
  • 즈루시
    11k
    2018-12-26 15:04:26

    아마데이스 ==> 아마데우스 

    토이플젝으로 git 을 처음 사용중인데... 아직까지 장점을 발견하지 못했습니다

    cvs, svn, git 순으로 옮겨가는 중인데 제가 느끼기엔 아직까진 커맨드 친화적이고 UI쪽으로는 더 발전 요소가 많은것 같아요

    0
  • zepinos
    18k
    2018-12-26 15:08:29

    cvs -> svn -> git 으로 흘러간 VCS 의 흐름에서 변화된 것을 보면


    cvs : 파일 단위 버전 관리

    svn : revision (프로젝트) 단위 버전 관리, 파일 복사를 통한 branch 관리

    git : tag(commit id) 단위 branch 관리


    위에서도 언급했지만 svn 은 branch 생성하면 파일을 전체 복사하기 때문에 느리기도 했고 충돌 등에 대해서 관리하기도 힘들었습니다. git 은 branch 생성 시 hashcode 을 붙인 상태로 구별만 해두고 수정된 내용만 따로 보관하기 때문에 원본 파일 수정은 어렵습니다. 그래서 원본 파일을 수정하는게 아니라 원본파일 내용으로 다시 저장하는 개념이 필요한 것이죠.


    사실 perforce 같은 것도 써봤기 때문에 git 이 그리 번거롭다는 생각은 안합니다. perforce 도 좋다고 애용하는 분들도 계시거든요. 그리고, 기획 쪽에서는 perforce 의 개념이 좋다고 생각해서 일부러 svn 에 auto lock/unlock 을 활성화해서 사용하는 분도 계십니다.

    0
  • 내누알
    478
    2018-12-26 15:10:44

    @즈루시 

    아직까진 커맨드 친화적이고 UI쪽으로는 더 발전 요소가 많은것 같아요 


    소스트리를 아직 안쓰시는겅가요..?


    0
  • zepinos
    18k
    2018-12-26 15:11:07

    즈루시 님 // 수정했습니다...;;;


    그리고 git 은 확실히 2 단계 저장소 형태 및 적극적인 branch 전략, 그리고 태깅을 통한 diff 정보만 저장한다는 개념 때문에 명령이 많아서 GUI 에서 모두 처리하긴 힘듭니다. 그래도 위에서 언급했듯이 sourcetree 면 왠만한건 GUI 에서 다 되고, 전 IntelliJ 에 내장된 기능만으로도 잘 쓰고 있습니다. 몇 가지 순서만 잘 지키면 됩니다. 나만 잘 지키면 되는게 아니라서 문제지만요...;;; (+submodule 쓴 프로젝트는 sourcetree 에서 너무 느려서 극혐)

    0
  • bluerain
    2k
    2018-12-26 15:15:19

    국내 금융권 및 몇몇 공공기관의 경험에서 보자면

     - 기존 운영자들의 기술 습득 및 적응 문제

     - 기존에 운영되던 시스템에 대한 대체 시의 기술 지원 및 비용문제

     - 새로운 적용에 대한 모든 업무에서의 전환 작업

    등의 문제가 산적해 있어서

    회사의 자체적인 환경이라면 문제가 적지만

    기존에 구성되어 있던 소스관리 시스템(삼성이라던가 타 업체에서 보안+소스관리를 넣은 솔루션)이

    있는 경우,

    대체해야 하는 이유에 대한 변경이 여러가지 문제에서 쉽지가 않죠.

    SI를 하는 대부분의 프로젝트에서 공공이나 몇몇 금융권은 개발서버 마저도 

    구성 안해 주는 경우를 너무 많이 봤거든요.

    그래서 일반 데탑 하나 더 받아서 개발서버로 구성하기도 합니다.

    게다가 소스관리 구성이 기존의 시스템에 얻는 경우, "결제"라는 큰 걸림돌도 생깁니다.

    개발인데도 말이죠.


    SI만 아니라면 구성하고, 진행하면 괜찮지만,

    SI 가 주인 개발자의 경우, 접하기에 좀 쉽지 않은 부분이 많습니다.

    제가 겪은 경험하에서 말한거라, Git을 하는 곳도 있기는 하겠지만,

    일단 제가 지금까지 보아온 곳들은 실제 운영에서 Git을 쓰는곳을 본 경험이 없네요.

    1
  • onimusha
    7k
    2018-12-26 15:16:30

    "나만 잘 지키면 되는게 아니라서 문제지만요...;;; "

    (마음과 머리속에 다시 새겨둡니다..;;)

    1
  • 즈루시
    11k
    2018-12-26 15:38:15 작성 2018-12-26 15:44:09 수정됨

    내누알 // 설치는 되어있습니다...  intelliJ 내부 지원 기능안에서만 사용중입니다

    버젼관리를 위해서 별도 툴을 다시 기동한다 라는 점은 또 마이너스 요소네요 =_=


    zepinos // 다들 잘 쓰고 계신다니 관심 기술중 하나이긴 한데 협업시 리딩할 지식이 없는 상태에선 말꺼내기 어려울것 같아요. SI 플젝성에서 branch 할일이 얼마나 있을까 싶기도 하구요

    별건 아닌데 제가 유지보수하는 개발서버에  SVN 서버(약 10여 종류의 AP 들의 버젼관리 중) 를 운용중이라... git 으로 관리하면 어떤 장점이 있을까 하는 궁금증으로 접근 중입니다.

    아직까진 거부감이 좀 드는게 svn 식 타성에 젖은게 큰것 같습니다

    백지로 놓고 다시 공부해야겠네요, 감사합니다

    0
  • zepinos
    18k
    2018-12-26 18:42:57

    즈루시 님 // git 을 가장 효율적으로 쓰려면 Issue Tracker 같은걸 운영해야 합니다.


    개발이든 유지보수 든 하나의 Task/Ticket/Issue 번호로 등록하고, 그 부분을 branch 로 분기해서 개발한 뒤 다시 합치는 방식으로 개발하는거죠. 그럴 경우 해당 branch 기준으로 소스의 변경 부분을 나눠서 볼 수 있는 장점이 있습니다.


    기존 SVN 의 branch 에서도 가능했지만 전체 소스를 branch 이동시 바꿔야하는 문제 때문에 소스가 많으면 많을수록 무거웠습니다. 개발자들이 같이 모여있는 상황이면 몰라도 디지털 노마드 스타일로 개발하는 개발자들 입장에선 그닥 선호되진 않았죠. 또 이게 로컬/리모트 저장소를 각각 가지게 된 이유이기도 하지만요.


    즉, 여러 개발자가 개발할 때 각자가 개발한걸 commit 하다보면 history 에 여러 사람의 소스변경내용과 주석이 막 나오지만(물론 id 별로 필터링하면 구별은 되겠지만), branch 전략을 적극적으로 쓰면 그럴 문제가 좀 덜하다...정도입니다. 그래서, Issue Tracker 인 JIRA, Redmine, Phabricator, ... 등을 적극적으로 쓰는게 git 을 적극적으로 쓸 때 무엇보다도 중요하다고 생각합니다.

    2
  • 아야로
    1k
    2018-12-26 19:05:44

    내누알

    저역시 소스트리 쓰면서도 내장 커맨드창을 정말 많이 쓰게 됩니다. 기능이 워낙 다양해서 GUI가 못따라가나 봅니다.

    0
  • jja
    2k
    2018-12-26 19:48:52

    커맨드 쓰는것부터 -요소... '이런것까지 알아야하나?'죠...

    0
  • 독거소년
    2k
    2018-12-27 08:56:59

    이전코드 돌아가서 살짝 수정하고 클린-빌드만 해줘도 '우와 이렇게 빨리돼'냐는 곳에 있는지라... 브랜치까지 쓸일 조차없네요.. 물론 팀에서 저만 소스트리 쓰지만요ㅎㅎ

    0
  • 에스파뇰조금합니다
    159
    2018-12-28 16:58:31

    git 의 개념정도만 알고 소스트리로 작업을 했었는데 추천해주신 사이트의 튜토리얼을 진행하니 이제는 두렵던 커맨드창에서도 작업이 되네요ㅎㅎ 정말 감사합니다🙇‍♂️

    0
  • 허허
    1k
    2019-01-04 17:59:39

    감사합니다 좋네요 !!

    0
  • 로그인을 하시면 댓글을 등록할 수 있습니다.