Merge 충돌 Git에서 Merge를 수행할 때 충돌이 발생할 수 있습니다. 먼저, Merge하기 전에 워킹 디렉토리를 정리하는 것이 좋습니다. 작업 중이던 파일을 임시로 저장하거나 Stash를 사용하여 변경사항을 백업합니다. function hello() { console.log('hello world'); } hello(); hello wolrd를 출력하는 javascript 파일이 있습니다. mundo 브랜치를 생성 후 hello mundo로 변경 후 커밋합니다. // mundo 브랜치 function hello() { console.log('hello mundo'); } hello(); master 브랜치에서 hello master로 변경 후 커밋합니다. // master 브랜치 function..
세 가지 트리로 Git을 이해 HEAD 현재 작업 중인 브랜치의 마지막 커밋 스냅샷을 가리키며, 다음 커밋의 부모 커밋입니다. INDEX 다음에 커밋할 스냅샷을 준비하는 영역으로, Staging Area로도 알려져 있습니다. 워킹 디렉토리 파일들이 실제로 존재하고 작업하는 영역으로, 프로젝트 파일들이 저장되는 공간입니다. HEAD 현재 작업 중인 브랜치를 가리키는 포인터로, 해당 브랜치의 마지막 커밋을 참조합니다. $ git cat-file -p HEAD tree cfda3bf379e4f8dba8717dee55aab78aef7f4daf author Scott Chacon 1301511835 -0700 committer Scott Chacon 1301511835 -0700 initial commit $ g..
마지막 커밋 수정하기 마지막 커밋을 수정하는 것은 Git에서 자주 하는 작업 중 하나입니다. 이를 통해 커밋 메시지를 수정하거나 수정한 파일을 마지막 커밋에 추가할 수 있습니다. 수정한 파일을 Staging Area에 넣고 git commit --amend 명령을 사용하여 커밋을 수정할 수 있습니다. $ git commit --amend 이 작업은 주의가 필요하며, 이미 Push한 커밋은 수정해서는 안 됩니다. 커밋을 고칠 때는 추가된 변경 내용이 커밋 메시지에 충실하게 담겼는지 확인해야 합니다. 때로는 --no-edit 옵션을 사용하여 커밋 메시지를 변경하지 않고도 커밋을 수정할 수 있습니다. $ git commit --amend --no-edit 커밋 메시지 여러개 수정하기 git rebase 명령을..
Git Grep 기본적으로 대상을 지정하지 않으면 워킹 디렉토링에서 파일을 찾습니다. -n이나 --line-number 옵션을 추가하면 라인 번호도 같이 출력됩니다. $ git grep -n gmtime_r compat/gmtime.c:3:#undef gmtime_r compat/gmtime.c:8: return git_gmtime_r(timep, &result); compat/gmtime.c:11:struct tm *git_gmtime_r(const time_t *timep, struct tm *result) compat/gmtime.c:16: ret = gmtime_r(timep, result); compat/mingw.c:826:struct tm *gmtime_r(const time_t *timep..
GPG 소개 GPG를 사용하여 작업에 서명하기 위해 개인키를 설정하고, 공개키를 이용하여 서명을 확인할 수 있습니다. GPG 확인 $gpg --list-keys --------------------------------- pub 2048R/0A46826A 2014-06-04 uid Scott Chacon (Git signing key) sub 2048R/874529A9 2014-06-04 GPG 키 생성 $gpg --gen-key GPG 키 서명키 사용 $git config --global user.signingkey {GPG ID} # 위에 예시일 경우 GPG ID에 0A46826A를 넣습니다. # ed25519일 경우 pub 밑에 GPG ID가 있습니다. 태그 서명하기 $ git tag -s v1.5..
태그와 커밋 기반의 이름 생성 git describe 명령은 가장 가까운 태그 이름, 그 태그 이후 커밋 수, 약식 커밋 해시를 조합하여 이름을 만듭니다. $ git describe v1.6.2-rc1-20-g8c5b85c 사람이 읽기 쉬운 이름 이렇게 만들어진 이름은 숫자 태그보다 사람이 읽기 쉽습니다. Git 설치 후 git --version을 실행하면 이런 식의 빌드 번호를 볼 수 있습니다. git archive 명령 사용 Git은 git archive 명령을 통해 프로젝트의 특정 시점 스냅샷을 압축 파일로 만들 수 있습니다. tar.gz 압축 파일 생성 $ git archive master --prefix='project/' | gzip > git describe master.tar.gz 위 명령..