변경 git 부분 커밋


0

하나의 파일이 다른 이슈와 관련된 몇 가지 변경 사항을 가져옵니다. 우리는 각 git에 대한 각 변경 사항을 설명하고 밀어 넣고 메모하지 않고 git commit을 게시 할 수 있으며 다시 수행하지 않도록 상기시킵니다.

변경 사항의 복잡성에 따라이 패턴을 사용하여 각 변경 사항에 커밋을 적용합니다.

  1. 완성 된 작업 파일을 새로운 최종 파일로 복사하십시오.
  2. 작업 파일을 마지막 완료 상태로 되돌립니다.
  3. 작업 파일과 최종 파일을 비교하고 문제의 개별 행을 수동으로 병합합니다.
  4. 단일 이슈에 대한 깨끗한 코멘트로 커밋하십시오.
  5. 필요에 따라 반복하십시오.
  6. 이제는 현재 작업중인 파일의 복사본이므로 최종 파일을 삭제하십시오.

"하지 마세요"이외의 다른 방법이 있습니까? 한마디로 말하면 하나의 파일 내에서 체리 피킹입니다. 그러나 모든 개발자가 알고 있듯이 변경 사항은 여러 파일에 분산 될 수 있습니다. 변경해야하는 줄을보고있을 때 변경하지 않으려 고 할 때가 있습니다. 변경 / 커밋. 감사.


가지로 일하니? 현실은이 모든 포스트가 내 머리를 두근 거리게 만들고 매일 Git을 사용합니다. 특정 커밋이 선형 적으로 무엇인지 의미한다는 것을 알아 채려한다면 Git의 목적을 상실하게됩니다. "git flow"에 대해 읽어보고, Git을 사용할 수있는 가장 좋은 방법은 브랜치가되는 이유 .
JakeGould

답변:


0

예, 기본적으로 Git의 "준비 영역"의 목적입니다. 커밋은 작업 트리를 실제로 저장하는 것이 아니라 준비 영역으로 복사 한 변경 사항 만 저장합니다. 너 이미 사용 했어. git add 커밋 준비를 위해 개별 파일을 준비하지만 더 세분화 된 작업도 가능합니다. 예를 들어보십시오 7.2 장 Git Book에서.

일반적인 패턴은 사용하는 것입니다. git add -p 개별 diff hunks를 선택할 수있는 능력 이자형 그것들을 더 멀리 위치 시키십시오 (예를 들어, 당신이 동일한 행크에 관련없는 선들을 가지고있는 경우). 또한 해당하는 git reset -p 무대 뒤에서 너가 너무 많이 추가 한 경우에 개인적인 변화.

용도 git diff --cached 무대가 무엇인지 알기 위해. 마침내 그냥 실행 git commit 평소처럼

(만약 당신이 바로 가기를 원한다면, git commit -p 모든 것을 한 걸음으로 처리합니다.)

너는 또한 달릴 수 있는다. git gui 또는 git citool 마우스로 개별 라인을 선택할 수있는 그래픽 커밋 인터페이스 (마우스 오른쪽 버튼으로 클릭). 또한 다른 그래픽 Git 클라이언트에 내장되어 있습니다. 그러나 이들은 일반적으로 전체 라인 수준에서만 작동합니다. 파일에 관련없는 변경 사항이있는 경우 동일한 줄 내에서 사용해야합니다. 자식 add -p 패치를 직접 편집하십시오.


한 커밋에 대한 변경 사항을 언 스테이지에서 언젠가 언 스테이지 한 다음 다른 스테이지에 돌아와 본질적으로 하나의 업데이트 된 작업 영역에서 몇 차례 연속 커밋을합니다. 그러나 당신이 찾고 있던 피드백의 종류를 정확하게 제공했습니다. 나는 당신의 제안을 시도하고, 여기에 다시보고하고, 모든 것이 잘된다면 이것을 대답으로 점검 할 것입니다. 감사.
TonyG
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.