만들면서 배우는 Git+GitHub 입문 책을 보면서 학습하였습니다.
1. 불필요한 파일 및 폴더 무시하고 진행하는 방법 ( .gitignore )
프로젝트를 진행하다 보면 저장할 필요가 없는 파일들 까지 커밋하는 경우가 있는데 이런 경우에 대표적으로 사용하는 방법이다.
* 가장먼저 .gitignore 폴더를 생성해준다 ls -al 로 조회한 이유는 .으로 시작하기 때문에 ls로 하면 나오지 않기 때문이다.*
* touch 명령어는 0바이트 빈 파일을 생성해주는 명령어이다. *
http://www.toptal.com/developers/gitignore
사이트로 들어가 해당 운영체제와 사용하는 언어를 검색하여 .gitignore 파일에 복사한 후 커밋을 하면 불필요한 작업들이 git에 추가되지 않는다.
2. 충돌이 발생하였을때
두 개의 브랜치에서 동시에 같은 파일의 같은 곳을 수정하고 병합을 진행할때 나타나는 문제다.
* 브렌치를 확인해보면 MERGING 으로 바뀌어져 있다 이것은 충돌이 발생하여 해결중이라는 명시적인 표시이다. *
충돌이 발생된 파일을 확인해 보면 충돌이 발생한 부분의 시작을 HEAD 충돌의 끝 부분을 hoxfix로 표시되어있습니다.
Git은 해당 행이 어떤 의미를 뜻하는지 모르기 때문에 어떠한 수정사항을 반영해야할지 사용자에게 선택권을 주게됩니다.
이런 경우에 하나의 내용을 선택하거나 두 수정 내역을 합치는 방법 즉 수동으로 충돌을 해결해야합니다.
* 즉 충돌이 난 부분이 어떤 의미를 두는지 이해를 하고 있어야 해결을 할 수 있다는 얘기다. *
두 수정 내역을 모두 반영하도록 파일을 수정한 후 다시 커밋을 진행하면 커밋이 완료된다.
3. 기록을 확인하는 방법 ( git log )
git log -p | 각 커밋에 적용된 실제 변경 내용을 보여준다. |
git log --word--diff | diff 명령의 실행 결과를 단어 단위로 보여준다. |
git log --stat | 각 커밋에서 수정된 파일의 통계 정보를 보여준다. |
git log --name-only | 커밋 정보 중에서 수정된 파일의 목록만 보여준다, |
git log --relative-date | 정확한 시간을 보여주는 것이 아니라 1일 전, 1주 전처럼 상대적인 시간을 비교하는 형식으로 보여준다. |
git log --graph | 브랜치 분기와 병합 내역을 아스키 그래프로 보여준다. |
가장 유용하게 사용하는 옵션은 --graph 명령이다.