하나의 파일을 분할하고 임의의 범위를 git add하고 싶습니다.

1929 단어 cliGitHubGit
Git에서 소스 코드를 관리하고 있고 커밋 이력을 깨끗하게 유지하고 싶을 때가 있지요.

검토를 요청하거나 변경 내역을 이해하기 쉬운 형태로 남기기 위한 것이거나 이유는 다양하지만 의미 있는 덩어리로 커밋을 관리하는 것은 팀 개발에 필수적입니다.

이미 소스 코드를 써 버렸을 때, 어떻게 하면 커밋을 분할할 수 있을까를, 이 기사에서는 소개해 갑니다.

git add -p 사용


-p 의 옵션을 부여하는 것만으로, 임의의 범위를 add 할 수가 있습니다.
$ git add -p <ファイル名>

그러면 아래 그림과 같은 화면이 열립니다.
hunk = '덩어리'입니다.
y 를 입력하면 +- 가 왼쪽 끝에 있는 행이 stage 에 등록됩니다.
n 를 입력하면 아무 일도 일어나지 않습니다.

그러나 이 덩어리는 자동으로 인식되는 것 같습니다.

그러므로 git add 좀 더 세밀하게 만들려면 e 를 입력하십시오.

임의의 범위를 add 한다



이전 화면에서 e를 선택하면 vi 편집기가 시작됩니다.

좌단이 + 의 경우는 추가된 코드, 좌단이 - 의 경우는 삭제된 코드, 아무것도 없는 경우는 변경 없음을 나타내고 있습니다.

stage에 등록하고 싶은 부분은 변경하지 않습니다.

등록하고 싶지 않은 부분은 + 의 경우는 행을 통째로 삭제 (vi라면 dd ), - 의 경우는 - 를 공백 に置換します。

選択が終われば保存し、いつも通り git commit 합니다.

이미 커밋 된 코드를 분할하고 싶습니다.



해당 부분에 rebase 를 걸어 reset 한 다음 git add -p 합니다.
$ git log --oneline -3
uptod8t 最新のコミット
tosplit 分割したいコミット
1before 分割したいコミットの1つ前

# 分割したいコミットで、 `pick` を `e` に変更して保存する。
$ git rebase -i 1before
e tosplit 分割したいコミット
pick uptod8t 最新のコミット

$ git reset HEAD~
Unstaged changes after reset:
M   main.py

$ git add -p main.py

이제 모든 위치를 stage에 등록할 수 있습니다.

마지막으로



기세가 너무 많아서 소스 코드를 쓸어 쓰고 나서 나누고 커밋하고 싶을 수도 있습니다.

그런 때, 좀처럼 git add -p 를 소개해 주는 기사가 없었으므로, 써 보았습니다.

만약 더 좋은 방법 등이 있으면 코멘트에서 지적하실 수 있으면 다행입니다.

참고문헌



편집 내역



2022 년 1 월 25 일 이미지를 삭제했습니다. 이미지는 신규 작성 예정입니다.

좋은 웹페이지 즐겨찾기