2016-11-04 1 views
1

컨텍스트 : 저는 단일 프로젝트에서 유일한 개발자로 일하고 있습니다. 나는 최근 SVN Repo를 Git으로 옮겼고, TortoiseGit 대 TortoiseSVN으로 작업 할 때 가장 먼저 놓친 것은 changelists이다. TortoiseSVN을 사용하면 로컬로 변경된 파일을 그룹화하고 해당 그룹의 이름을 지정할 수 있지만 여전히 의 목록을 볼 수있다. 변경 사항이 커밋되지 않았습니다. 저는 일반적으로 하나 이상의 티켓 (버그 또는 기능)에서 동시에 작업 할 때 무엇이든 할 준비가되기 전에이 작업을 수행합니다.하나 이상의 이슈에서 작업 할 때 Git을 사용하여 코드 변경을 분리하십시오.

일을하는 Git 방법을 깨닫는 것이 분명히 SVN 방식과 다르다. 아마도 로컬에서 변경을 커밋해야하거나 각 티켓에 대해 별도의 분기를 만들고이를 변경해야한다. SVN이 종종 파일의 이름을 바꾸거나 파일을 옮기는 것처럼 평소와는 다른 일을 할 때마다 분기/전환/병합을하지 않기 때문에 약간의 불안감을 느낍니다. 또한 변경된 모든 파일을 그룹화 된 단일 목록에 표시하는 것이 좋습니다. 변경 목록에 나와있는 항목이 있지만 Git에서 그렇게하는 방법은 없습니다.

상기의 경우, 일반적으로-허용 대답은 티켓의 지점을 사용하는 것입니다 경우

, 나는 다음과 같은 두 가지 시나리오 단계에 몇 가지 지침을하시기 바랍니다 싶습니다

  1. 방법 총 18 개 파일로 구성된 현재 변경 사항 세트를 분리합니다. 현재 주 전체에서 지점 2 개를 만들고 티켓 # 1을 위해 지점을 만들고 티켓 # 2를 위해 지점을 만들어야합니다. 그런 다음 지점 # 1과 비자에서 # 2의 변경 사항을 제거해야합니까?

  2. 하나의 티켓에 대한 코드가 이미 변경되어 있고 다른 티켓에서 작업을 시작해야하는 새로운 상황의 경우, 두 단계 사이에서 쉽게 앞뒤로 쉽게 이동할 수 있도록 어떤 단계를 밟아야합니까? 모든 변경 사항이 결합 되었습니까? 이게 그렇게 될까요? 현재 티켓의 변경 사항에 대한 분기를 만듭니다. 두 번째 티켓의 변경을 위해 마스터의 새 지점을 만들고 스위치를 전환 할 때 스위치를 전환 하시겠습니까?

답변

3

git에서 모두 생성 및 병합 분기가 빠르고 쉽습니다. git의 위대한 강점 중 하나를 분기합니다.

따라서 가장 좋은 방법은 착수 한 각 작업에 대한 분기를 만드는 것입니다. 작은 일조차! 이렇게하면 구조화 된 방식으로 작업하는 것이 더 쉬울 것이며, 이후에 버전 트리를 쉽게 이해할 수 있습니다.

  1. 나는 이런 식으로 할 것 :

    1. 당신이 지점 master
    2. 티켓 # 1 분기를 만들에있는 것으로 가정, git checkout -b ticket1
    3. 단계 그런에 속하는 변경 티켓 git add file1
    4. git commit
    5. git checkout master (파일 수정이 티켓 # 2 보존에 관한)
    6. 는 티켓 # 2 분기를 생성, git checkout -b ticket2
    7. 단계 그 티켓에 속하는 변경 지금 git add file2
    8. git commit
    9. 자유롭게 전환 할 수 있습니다 사용 티켓은 git checkout ticket1
  2. 예. git에서는 분기를 전환하는 것이 안전하고 쉽고 빠릅니다. 따라서 서로 다른 작업을 위해 분기 간을 전환하는 것이 합리적입니다.

+0

5 단계에서 괄호 안의 뜻이 잘못되었습니다. 나는 그것이 무엇을 의미하는지 이해하지 못합니다. – j6t

+0

@ j6t OP 시나리오에서 티켓 # 1과 티켓 # 2에 관한 두 파일이 수정되었습니다. 1 ~ 4 단계는 Ticket # 1에 관한 파일을 커밋하지만 Ticket # 2에 관련된 파일은 여전히 ​​수정되지만 커밋되지는 않습니다. 5 단계에서는 분기를 전환하지만 아직 커밋되지 않은 수정 사항을 두려워 할 수도 있습니다. * (괄호 안의 의미에서 사용한 의미입니다). Git은 수정 사항을 그대로 적용하기 때문에 시나리오를 잘 처리 할 수 ​​있습니다. –

+0

알겠습니다. 따라서 암시적인 단계는 0입니다. 두 티켓을 모두 수정했고 수정 사항이 서로 다른 파일에 완전히 분리되어 있다고 가정합니다. – j6t

관련 문제