본문 바로가기

그 외

[Git&Github] CLI log, commit, push

vsc을 이용해서 생성 수정 삭제를 하면 file 옆에 M 표시가 있는데, 이는 해당 파일 내용이 변경(수정)되었다는 것을 의미한다.

새로운 file을 만들면 해당 파일 옆에 U(untracked) 표시가 있는데, 이는 git이 아직 해당 파일을 추적하지 않고 있다는 뜻 즉 git에 등록되지 않았다는 뜻이다.

이후 체크버튼을 클릭하면 자동으로 github으로 commit한다.

commit 히스토리는 터미널로 가서 git log라고 입력하면 commit 히스토리가 나온다.

push는 터미널에 git push origin main을 입력하면 github으로 push된다.

 

콘솔로 git을 추가하려면

git add . 을 입력한다. ( .)은 폴더의 뜻이다.

그 다음 git commit -m(다른 항목이 궁금하면 -help를 입력해서 알아보자) "(메시지 내용)"

그 다음 위와 같이 git push origin main입력을 하면 된다.

 

추가적으로 git log에서 나오는 HEAD는 이전 커밋의 내용들이 다 합쳐진 것을 말한다.

Git log

여기서 이전 커밋을 돌아보려면 git checkout 에 commit 뒤에 숫자와영문조합을 입력하면 해당 커밋으로 돌아가게된다.(확인만 하는거지 완벽하게 복구한게 아님) 

다시 현재 상황으로 되돌기 위해선 git checkout main을 입력하면 현재로 돌아간다.

 

과거 커밋으로 가기 위한 다른 방법으로는 git reset --hard(삭제한다는 뜻) HEAD(뒤에 ^를 추가할 때 마다 한 커밋 뒤로감)

git reset --hard HEAD^ (최근 커밋 삭제)

$ git reset --hard HEAD^
-> `--hard`: Delete the commit
-> `HEAD^`: How far a head
-- `HEAD`: Current head
-- `HEAD^`: 1 commit back from head
-- `HEAD^^`: 2 commits back from head
-- `HEAD^^^`: 3 commits back from head

하지만 이 방법은 origin에 아직 최근 커밋이 남아있으므로, git push origin main --force 로 강제 푸시를 해야한다.

참고 영상 https://nomadcoders.co/git-for-beginners/lectures/2046

 

All Courses – 노마드 코더 Nomad Coders

초급부터 고급까지! 니꼬쌤과 함께 풀스택으로 성장하세요!

nomadcoders.co

 

-reset에는 soft reset와 hard reset, mixed reset이 있는데, hard(git reset --hard HEAD^)는 리셋하는 파일을 삭제하는 것이다. 완전히 과거로 돌아가는 것. 파일 변경 내역을 유지하지 않음. 대부분 hard,mixed rest을 사용한다.

 

-mixed reset(git reset HEAD^)은 방금 commit한 변경사항을 다시 Unstage영역(작업영역)으로 옮기는 것이다. 파일 변경 내역은 유지한다. 하지만 이와 같은 방식으로 재수정한다면 컴퓨터 내 파일 내용과 원격저장소 내 파일 내용이 일치하지 않는다.

따라서 $ git pull origin main으로 github에 있는 origin코드를 가져와 merge시켜주고 새롭게 git add해서 업로드 한다.

(보통은 git push origin main --force로 강제 한다)

 

-soft rest은 방금 커밋한 변경사항을 stage영역으로 옮기는 것이다.

 

* [Ctrl + Shift + z] 혹은 [Ctrl + y] 입니다. 실행취소(undo)된 것을 다시실행(redo)

* $ git remote -v 현재 작업 중인 git의 원격저장소 홈페이지로 이동

'그 외' 카테고리의 다른 글

[VSC] 저장 시 자동 줄 정렬 Prettier 설정  (0) 2022.01.22
[Git&Github] branches  (0) 2022.01.06
[Git&Github] 깃과 깃허브란2  (0) 2022.01.05
[Git&Github] 깃과 깃허브란?  (0) 2021.12.31