본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.
Section 10.1: 변경사항을 stage 하고 커밋하기
기본 사항
소스 코드를 변경한 이후에 커밋을 하기 위해서는, 해당 변경 사항들을 stage 하여야 한다.
예를 들어, README.md 파일과 program.py 파일을 수정하였다면:
git add README.md program.py
위와 같은 명령을 통해 해당 파일들을 다음에 수행할 커밋에 포함되도록 추가할 수 있다.
그런 다음, stage 된 변경사항을 아래와 같이 커밋한다.
git commit
위 명령 수행시 텍스트 편집기가 실행되는데, 많은 경우 vim 편집기가 뜨게 된다. 만약 vim 사용에 익숙치 않다면, i 키를 눌러 텍스트 삽입 모드로 변경할 수 있으며, 커밋 메시지를 작성한 다음에는 Esc 를 누르고 :wq 를 입력하여 저장 및 종료할 수 있다는 정도만 기억하도록 한다.
텍스트 편집기 실행을 피하고 싶다면,
-m
옵션과 함께 커밋 메시지를 직접 입력할 수도 있다.
git commit -m "Commit message here"
커밋 메시지는 종종 특정한 서식을 따르는 경우가 많으므로, 더 자세한 설명을 위해서는 "커밋 메시지 잘 작성하기" 섹션을 참고하도록 한다.
단축 옵션
만약 상당히 많은 수의 파일들을 변경하였다면, 각 파일들을 일일이 나열하는 대신에, 아래와 같이 수행할 수 있다:
git add --all # "git add -a" 와 동일하다
혹은 최상위 디렉토리에서부터 하위 디렉토리까지의 모든 변경사항들을 삭제된 파일들을 제외하고 추가하기를 원한다면 아래와 같이 수행한다:
git add .
혹은 현재 Git 에 의해 추적 (tracked) 되고 있는 파일들만 추가하기를 원한다면 ("update"):
git add -u
이후 만약 필요하다면, stage 된 변경사항들을 아래와 같이 확인한다:
git status # 변경된 파일들의 목록을 출력한다
git diff --cached # stage 된 파일들 내의 stage 된 변경사항들을 보여준다
최종적으로, 변경 사항들을 아래와 같이 커밋한다:
git commit -m "Commit message here"
다른 방법으로, 새로운 파일 생성 없이 기존 파일들에 대해 수정 혹은 삭제만 수행하였다고 하면, git add
와 git commit
을 한 명령어로 합쳐서 수행할 수 있다:
git commit -am "Commit message here"
이 방법은 git add --all
와 동일한 방법으로 변경된 파일들을 stage 시킨다는 점을 유의하라.
민감 정보 관련
커밋에는 비밀번호나 private key 등 어떠한 형태의 민감한 정보도 포함하여서는 안된다. 만약 이러한 일이 발생하여 해당 변경사항이 중앙 서버로 push 되었다면, 해당 민감 정보는 이미 유출외었다고 생각해야 할 것이다.
다른 측면에서는, 이후에 이러한 정보를 제거하는 것이 가능하기도 하다. 쉽고 빠른 방법중의 하나는 "BFG Repo-Cleaner" 를 이용하는 것이다: https://rtyley.github.io/bfg-repo-cleaner/.
bfg --replace-text passwords.txt my-repo.git
명령어 수행 시, passwords.txt 파일에서 암호들을 읽어 해당 암호들을 ***REMOVED***
문자열로 치환시킨다. 이 작업은 전체 저장소 내의 모든 커밋들을 대상으로 한다.
[출처] https://books.goalkicker.com/GitBook/ (CC BY-SA)
'번역 > Git Notes for Professionals' 카테고리의 다른 글
10.3: 커밋 수정(amend) 하기 (0) | 2019.10.21 |
---|---|
10.2: 커밋 메시지 잘 작성하기 (0) | 2019.10.19 |
10: 커밋하기 (0) | 2019.10.18 |
9.6: submodule 제거하기 (0) | 2019.10.16 |
9.5: submodule 위치 변경하기 (0) | 2019.10.16 |