2장. 히스토리, 추적단위(파일/라인) 정의
히스토리는 작업이 어떻게 바뀌어 왔는지의 시간표입니다. "무엇이 바뀌었는지"를 나중에 다시 볼 수 있게 해줍니다.
Git은 보통 파일 단위로 바뀐 내용을 보고, 그 안에서는 라인(줄) 단위로 무엇이 달라졌는지 잘 보여줍니다.
왜 줄 단위가 가능할까요? 텍스트 파일은 내용을 사람이 읽을 수 있는 글자로 한 줄씩 정리해서 저장하기 때문입니다. 여기서 텍스트 파일은 메모장으로 열었을 때 사람이 읽을 수 있는 파일을 뜻합니다. 그래서 "3번째 줄이 바뀌었네" 같은 비교가 쉽습니다.
반대로 그림 파일처럼 사람이 바로 줄 단위로 읽기 어려운 형식은, "이 파일 전체가 바뀌었는가" 중심으로 보는 경우가 많습니다.
그림 2-1. 같은 파일의 줄이 바뀌는 히스토리
한 파일이라도 여러 번 고치면, 줄 단위 수정이 시간 순서대로 쌓입니다. 커밋 원을 클릭하면 해당 커밋의 파일별 Diff를 바로 볼 수 있습니다.
줄 단위로 본다는 느낌
[Assets/Prefabs/UI/LoginButton.prefab - 변경 전]
m_Name: LoginButton
m_AnchoredPosition: {x: 0, y: -96}
m_Text: Start
[Assets/Prefabs/UI/LoginButton.prefab - 변경 후]
m_Name: LoginButton
m_AnchoredPosition: {x: 0, y: -96}
m_Text: Enter Game
위처럼 3번째 줄이 바뀌면, Git은 그 변화 지점을 중심으로 기록합니다. 그래서 나중에 "누가, 언제, 어느 줄을 바꿨는지" 찾기 쉬워집니다.