우리는 하나의 파일 뿐만 아니라 여러 개의 파일들로도 버전을 만드는 방법 등을 배웠습니다. 저는 단언컨대 여러분이 버전관리 사용자가 되었다고 말씀드릴 수 있습니다. 이 정도면 버전관리를 할 줄 아는 사람입니다. 여러분 기분 좋죠? 기분 좋아하는 것도 능력입니다. 여러분 유능한 사람이 되길 바래요.
이제까지 배운 것 만으로도 할 수 있는 엄청나게 좋은 것들을 제가 알려드릴 겁니다.
우선, hello1.txt 파일을 위와 같이 수정합니다. 그리고 나서는 git status로 어떤 상태인지 확인해 보죠.
git status
Changes not staged for commit 의 상태에 hello1.txt 파일이 있다는 것을 우리는 알 수 있습니다. 즉, 아직 Staging Area에 hello1.txt 파일이 올라가 있지 않다는 것을 의미합니다.
이제 제가 정말 좋아하는 명령이 하나 나오는데요.
git diff
바로 git diff 입니다.
복잡한 표현들이 있는데, 무시하셔도 되는데요. 초록색 글자들은 새롭게 추가되었다는 것을 의미하고요. 빨간색 글자는 삭제되었다는 것을 의미합니다. 무슨 말이냐면, Working Tree 에서는 3과 fourth 가 Repository 에 있는 최신버전과 비교해보면 새롭게 추가되었다는 것을 의미합니다.
여러분 이 파일이 1억 줄 짜리 코드이고, 그 중에서 1,000만줄 정도를 여러분이 고쳤다고 생각해보세요. 이런 기능이 없었다면 어떤 부분들을 내가 수정했는지 파악하는 것은 거의 불가능한 일이었을 겁니다. 그런데 git diff 라는 것을 통해서 여러분의 마지막 버전과 Working Tree의 차이를 파악하는 것을 통해서 우리가 작업을 끝내기 전에, 즉 버전을 만들기 전에 내가 무엇을 만들었는지 마지막으로 되돌아보고 검토해 볼 수 있는 기회를 얻을 수 있는 겁니다.
그리고 여기서 만약 여러분이 이번에 수정한 것이 마음에 들지 않아서 버리고 싶다면
git reset --hard
git reset --hard 라고 명령을 주면 지금까지 작업한 내용이 휙하고 사라지고 Repository에 저장된 마지막 버전으로 돌아가게 됩니다.
만약 우리가 버전관리를 하고 있지 않았다고 했을 때 마지막에 작업하던 상태로 돌아가는 것은 정말 어려운 일입니다. 그런데, 이렇게 쉽게 할 수 있다라는 것도 우리가 가질 수 있는 효용입니다.
또한, git log를 할 때 -p 라는 옵션을 주게 되면 버전마다 어떤 파일을 어떻게 수정했는지 한번에 파악할 수도 있습니다.
git log -p
엄청 산만한데요, 각 버전마다 어떤 파일들이 포함되어 있고, 어떤 수정사항이 있었는지 파악할 수 있는 것이 git log -p 입니다. 물론 우리는 엄청 심플하게 코드를 작성했기 때문에 이 기능의 효용이 크게 느껴지지 않을 수 있지만, 아주 복잡한 코드를 가지고 있는 상황이라면 문서 상에서 문제가 생겼을 때 어디에서 문제가 생겼는지 파악하는데 엄청 큰 도움이 될 수 있습니다. 즉, 버전과 버전 혹은 파일과 파일 간의 차이를 비교할 수 있고 그 비교를 통해서 의사결정을 내릴 수 있다라는 것이 버전관리의 엄청난 장점입니다.
우리는 지금까지 버전을 만들고 버전을 읽는 방법을 배웠습니다.
이제 업데이트하고 버전을 삭제하는 것 까지만 배운다면 버전 관리의 모든 것을 배웠다고 우리는 볼 수 있습니다.
CRUD
Create Read Update Delete 중에서 벌써 절반이나 배웠습니다. 고생하셨습니다.
출처 : https://opentutorials.org/course/3839
'[생활코딩] 형상관리 > GIT2 CLI' 카테고리의 다른 글
GIT2 - 보충수업 {-am, 기본 에디터} (0) | 2023.05.10 |
---|---|
GIT2 - checkout 과 시간여행 (0) | 2023.05.10 |
GIT2 - 여러개의 파일을 버전으로 만들기 (0) | 2023.05.10 |
GIT2 - 버전 관리 시작하기 & 버전 만들기 (1) | 2023.05.10 |
GIT2 - 설치 (0) | 2023.05.09 |