GIT에서 파일의 일부만 커밋하십시오
질문
git에서 파일을 변경하면 변경 사항 중 일부만 커밋 할 수 있습니까?
예를 들어 파일에서 변경된 30 개의 줄 중 15 줄 만 커밋 할 수있는 방법은 무엇입니까?
답변
git add -patch
Stage this hunk [y,n,q,a,d,/,j,J,g,s,e,?]?
다음은 각 옵션에 대한 설명입니다.
y 스테이지이 헌크 다음의 commit. n 다음의 커밋을 위해이 덩어리를 무시하지 마십시오. q 종료;이 덩어리 나 남은 덩어리를 무시하지 마십시오. 이 덩어리와 나중에 파일의 모든 덩어리 인 무대 d이 덩어리 또는 나중에 파일을 파일에 무시하지 마십시오. g 덩어리를 선택하십시오 주어진 정규식과 일치하는 덩어리를 검색하십시오 j이 덩어리를 맡기고, 다음의 미결 된 덩어리를 보아라. j이 덩어리를 맡기고, 다음 덩어리를 보아라 k는이 덩어리를 맡지 않았다. k는이 덩어리를 맡기고, 이전 덩어리를 보아라 s 현재 덩어리를 작은 덩어리로 나눕니다 e 현재 hunk을 수동으로 편집하십시오 그런 다음 +/- # (고마워 Veksen)를 교체하여 덩어리를 수동으로 편집 할 수 있습니다. ~을 자란Hunk 도움말을 인쇄하십시오
파일이 아직 저장소에 있지 않은 경우 먼저 git add -n
그런 다음 다음을 사용할 수 있습니다 :
git diff - 정확한 변경을 단계적으로 준비했는지 확인하기 위해 Git Reset -p가 실수로 착용감을 잃어 버렸습니다 Git Commit -v 커밋 메시지를 편집하는 동안 커밋을 보려면.
참고 이것은 Git Format-Patch 명령과는 멀리 떨어져 있으며, 그 목적은 .patch 파일로 데이터 커밋 데이터를 구문 분석하는 것입니다.
미래를위한 참고 : Git Tools - 대화식 스테이징
답변
git add -interactive 또는 git add -p
Modern Git에는 Git Commit - Interactive (Interactive Commit의 패치 옵션에 대한 단축키 인 Git Commit -patch)도 있습니다.
GUI에서 그것을하는 것을 선호하는 경우 Git-GUI를 사용할 수 있습니다.커밋에 포함시킬 덩어리를 단순히 표시 할 수 있습니다.나는 개인적으로 Git Add -i를 사용하는 것보다 쉽게 찾을 수 있습니다.QGIT 또는 GITX와 같은 다른 GIT GUI는 또한이 기능을 가질 수도 있습니다.
답변
Git GUI는이 기능을 diff보기에서 제공합니다.관심있는 줄을 마우스 오른쪽 버튼으로 클릭하면 "이 줄을 커밋 할 단계"메뉴 항목이 표시되어야합니다.
답변
나는 Git add -e myfile이 텍스트 편집기를 열고 스테이지가있는 어떤 줄을 선택하고하지 않는 어떤 줄을 선택할 수 있기 때문에 git add -e myfile이 가장 쉬운 방법입니다 (적어도 나의 선호도). 편집 명령과 관련하여 :
추가 된 내용 :
추가 된 콘텐츠는 "+"로 시작하는 행으로 표시됩니다.추가 라인을 삭제하여 추가 라인을 방지 할 수 있습니다.
제거 된 내용 :
제거 된 내용은 "-"로 시작하는 행으로 표시됩니다."-"( ""(공백)로 변환하여 제거를 방지 할 수 있습니다.
수정 된 내용 :
수정 된 내용은 "-"행 (이전 콘텐츠 제거) 다음에 "+"행 (교체 내용 추가)으로 표시됩니다."-"라인을 ""로 변환하고 "+"를 제거하여 수정을 방지 할 수 있습니다. 윤곽.쌍의 절반 만 수정하면 인덱스에 혼란스러운 변경 사항을 도입 할 수 있습니다.
Git 추가에 대한 모든 세부 정보는 Git -help Add에서 사용할 수 있습니다.
답변
Vim을 사용하는 경우 우수한 플러그인을 시도 할 수 있습니다.
GDIFF와 함께 작업 복사본과 인덱스와 인덱스와 DP와 같은 클래식 VIM Diff 명령을 사용하여 줄 또는 덩어리를 추가하는 파일의 Diff를 볼 수 있습니다.색인에 수정 사항을 저장하고 다음과 같이 커밋하십시오. GCMMIT, 완료됩니다.
매우 훌륭한 소개 스크린 캐스트는 여기 (특히 2 부 참조).
답변
Atlassian에서 Southerere를 사용하여 강력히 추천합니다.(그것은 무료입니다.) 그것은이 사소한 것입니다.코드 또는 개별 코드의 개별 덩어리를 빠르고 쉽게 단계별 할 수 있습니다.

최근댓글