Notice
Recent Posts
Recent Comments
Link
«   2024/06   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
Tags more
Archives
관리 메뉴

프랙티스만이 살길. 프랙티스만이 살길.

Git CLI로 버전관리하기 上 본문

git

Git CLI로 버전관리하기 上

gaussian-goodman

Git의 구조에 대해 설명하면서 명령어를 공부하는 시간을 가져볼라고했는데, vscod 코드로 버전관리하기를 하면서 너무 많은 내용을 적었다… 때문에 중복되는게 있지도 많지만은~ 차피 나만 보는거~ 걍해버려야지~ 쓸데없는 고민이 많아지면 하기 싫어진다. 이번에도 역시 GIt bash를 사용했따.


디렉토리를 하나 만들어주자.

이번에는 뭔노래를 적으면서 버전관리를 할까…하다가 제이지로 가기로혔다…

99 Problems.txt를 하나 만들어줬다.준비끝

일단 간단히 GIT의 구조에대해 말해보자면. 어떤 디렉토리의 변화를 기록하는 것인데. 내가 기록하고 싶은것만 기록할수있다. 그 변화를 확인 할 수도있고, 예전 기록으로 이동 할 수도 있다.

working tree - staging Aera - Repository 로 깃의 부분을 나눌 수 있는데 , repository는 기록이 저장되는 저장소이다. working tree는 내가 디렉토리를 수정했으나 아직 기록소에 올리지 않은 것이고. staging Area는 working tree에서 작업한 모든걸 올리고 싶지 않을 수 있으니. 올리고 싶은 파일만 staging Area로 올리고 Repository에 최종적으로 업로드한다.

git init

2cool폴더를 버전관리를 시작하기 위해 git init를 입력하면 .git 파일이 생기고 버전관리가 시작된다.

git status

git을 사용하면서 질리도록 쓰는 명령어 중 하나이다. 뜻 그대로 git의 버전 관리 상태를 알려준다. 일단 써먹어보자.

거밋은 안했으니깐 없다고 하는게 당연지사인디, Untracked files에 99 Problems.txt가 있는데 이건 뭐임? 그건 한번 스테이징하고 커밋하면 그때부터 파일을 트래킹해준다. 차이가 있는지도 확인해주고, 말그대로 그 파일을 관리. 하기 시작한다.

git add

오까이 그럼 일단 스테이징 시켜보자 git add 파일명을 입력하면 된다.

**git add 파일명자리에 온 *** 은 디렉토리안에 모든 파일을 의미한다. 제대로 stage된 걸 확인했다.

git add . 를 하면 아래 디렉토리의 파일까지 모두 stage해준다.

git commit

이제 커밋을 해서 레포지토리에 버전을 저장해보자. git commit 을 입력하면 편집기가 열리고 커밋 메시지를 입력하는 창이 열린다. 자세히 적을 떄는 좋지만 지금은 귀찮으니깐 git commit -m “메시지” 를 이용해먹자. 그러면 창 안열리고 메시지 부분의 내용이 커밋 됨. ㄱㄱ.

status를 확인해보니 커밋할것도 없고(stage에 암것도 없음), working tree에 변경사항도 없다고 아주 개운하고 시원한 상태라고 한다. 귣귣

git commit -am “메시지”를 입력하면 add와 commit을 한번에 해준다.

git log

status 보다 더 많이 보는 git log이다. 버전관리 내역을 보여준다.

만든 사람, 버전의 ID, 만든 날짜도 알려준다.

git log --all 모든 브랜치를 모여준다

git log --graph 그래프 형석으로 보여준다.

git log --oneline 한줄에 보여준다.

git diff

working tree에서 수정한 것과 가장 최근의 레포지터리의 버전을 비교하고 싶다면, git diff를 이용하면 된다.

새로운 Praise God.txt를 만들고 v2로 commit해주었다.

이제 99 Promblems.txt에 텍스트를 추가해주자.

아직 스테이징전에 git diff를 입력하면

새로 입력한 내용이 나온다.

git log -p

버전간의 변화를 보고싶다면 어떡할까? 일단 위의 변화들을 커밋해주고 git log -p를 입력해보자

버전별로 추가된게 나온다.

git checkout

버전들 사이를 이동하게 해준다 만약 v2이동하면 내 디렉토리의 내용이 v2의 기록과 같아진다. git에는 head라는게 있는데

헤드는 포인터이다. 현재 헤드는 v3를 가리키고 있는데 만약 v2로 이동한다면 head는 v2를 가르키게 된다. git checkout 버전ID를 입력하면된다. v2버전으로 이동해보자.

head가 v2로 이동한걸 확인 할 수 있다.

슬슬 최신버전으로 돌아가고싶다 하면 git checkout master를 입력해주자.

오예 베리굿

git reset

git reset 버전ID 로 그 버전으로 돌아갈 수 있다. 그 버전으로 만들어 버린다. 즉 내가 v2로 돌아가 버린다면 v2 이후에 내가 한것들은 다 삭제가 된다. v2버전으로 reset해보자.

v3은 사라졌다.. 바이바이

reset에는 3가지 종류가 있는데 --hard, --soft, -- mixed이다.

이거 참 잘만든 설명인듯.

git revert

reset은 삭제였다면 , revert는 복구이다. 전 단계에서 v3를 삭제해버려서. 이제는 v2와 v1으로 밖에 설명을 진행하나거나 , 귀찮게 새로 만들어야한다. 이것이 reset을 사용할 때의 문제중하나이다. revert는 이 문제를 해결 해준다.

v1로 revert해보자. reset과 다른점은 reset은 돌아갈 버전의 ID를 입력했다면 revert는 돌아가고자하는 버전의 다음버전의 ID를 입력해야한다. 즉 위에 과정은 v2로 reset한것이고 revert를 한다면 v3를 revert해야하는것이다.

v1으로 리버트 해보자.

v1으로 만든게 아니라 v1과 같은 새로운 버전을 만들었다고 보는게 맞다. 즉 reset과 revert모두 내 디렉토리를 특정 버전으로 만들어주는것은 같다. 차이는 기록을 남기냐 안남기냐이다

주의 할 점!!!! v1, v2, v3, …, v10까지 만들었다고 해보자 그럼 v3으로 revert하고 싶다면 git revert v3ID하면 될까? 안된다 v10에서 하나하나 내려와야한다. 아니면 충돌문제가 생길 수 잇따.

넘길어지니깐 다음으로..

'git' 카테고리의 다른 글

Git CLI로 Git hub에 연결해 버전관리하고 협업하기  (0) 2023.08.05
vscode로 Git hub에 버전관리하기  (0) 2023.08.05
posix CLI  (0) 2023.08.05
들어가며  (0) 2023.08.05