[Git] 헷갈렸던 Git 명령어 & 개념

0
post-thumbnail

평소 git을 사용할 때 헷갈렸던 명령어, 도움이 됐던 명령어들을 정리해봤다!👩‍💻👀

1. git reset 커밋번호 --hard vs git revert 커밋번호

프로젝트의 예전 코드 버전으로 되돌아갈때, 대표적으로 두가지 방법이 있다.

git reset --hardgit revert
과감한 방법신중한 방법
미래로 되돌아갈 수 ❌미래로 되돌아갈 수 ⭕

(1) git reset 돌아가고자 하는 버전 --hard

git log로 코드 버전들을 확인한 후, 과거 버전으로 되돌아가고 싶을때 쓰는 명령어다. 해당 명령어를 치면 돌아가고자 하는 시점 이후의 버전들은 삭제되므로 유의해서 사용해야 한다. git log로 확인해보면 돌아간 시점 이후의 로그가 삭제된 것을 확인할 수 있다.

(2) git revert 취소하고자 하는 버전

(1)과 동일하게 과거버전으로 되돌아가는 명령어지만, 돌아갈 시점을 찾는것이 아니라 취소할 시점을 찾는 명령어이다. git revert를 사용하고 git log를 확인해보면 취소한 로그가 삭제된 것이 아니라 뒤에 새 버전의 캡슐이 생성된다. 즉, 취소한 버전의 정반대 되는 변화가 새롭게 로그로 생성된 것이다. 더 자세히 말하자면, 취소하고자 했던 버전의 변화를 상쇄하는 새 로그가 생성된거라고 이해하면 된다.

git revert 명령어를 사용하면 미래로 되돌아갈 수 있다고 했다. 즉, git revert를 통해 취소했던 버전의 변화를 상쇄하는 새로운 로그가 생성되었으므로, 다시 되돌리고 싶을때는 git reset 명령어를 통해 생성되었던 새로운 로그를 삭제하고 되돌아가면 된다.



2. 브랜치 관계

뻗은 가지들(branch)간의 관계

현재 master 브랜치에 있다고 가정하자. 여기서 git branch my_idea 를 통해 my_idea 브랜치를 새로 생성하고 체크아웃하여 브랜치를 바꾸고, 바꾼 상태에서 git branch second_my_idea 브랜치를 만들면 어떻게 될까??

나는 깃을 처음 다룰때 master에 동등한 수준으로 my_idea와 second_my_idea가 생성되는 줄 알았다. 하지만 그게 아니라, my_idea 브랜치에 있는 상태에서 브랜치를 또 생성했으므로 my_idea 브랜치에 second_my_idea라는 브랜치가 덧붙여진것이다.

이 개념을 잘못 알고 있었어서, merge할때 애를 먹었었다..🤣



3. .gitignore 파일

프로젝트를 진행하다보면 git으로 관리하고 github에 올릴필요가 없거나 올리면 안되는 파일들이 있다.

예를 들어 코드를 실행함으로써 패키지가 다운받아지거나 코드가 빌드되면서 자동으로 생성되는 파일들은 올릴필요가 없다! 굳이 github용량을 차지할 필요가 없기때문.. 또한 github에 public으로 올리는 순간 전세계 모든 사람들이 볼 수 있기 때문에 보안적으로 중요한 내용들은 github에 올리면 안된다. 예를 들어 데이터베이스의 사용자 계정이 공개되면 안되는것처럼!

프로젝트 파일의 최상위 경로에 .gitignore파일을 생성한다.
github에 올리지 않고 싶은 파일을 해당 파일에 작성하고 커밋하면 깃헙에는 .gitignore파일만 올라가게 되고 해당 파일안에 언급된 파일들은 깃헙에 올라가지 않는다!


4. git fetch

다른 사람들과 협업하는 프로젝트를 진행할때 다른 사람들이 작업한 코드를 이어받아야 하는 경우가 반드시 생긴다. 이때 내 로컬에서의 master브랜치가 원격(github) master브랜치와 상태가 동일한지, 뒤쳐졌는지 확인하기 위해서 사용하는 명령어이다. 뿐만 아니라 새로 생성된 브랜치 같은 정보도 알 수 있다.

만약, 로컬 브랜치 뿐만 아니라 원격 브랜치도 파악하고 싶다면 아래의 명령어를 사용!

git branch -a

git fetch명령어를 사용한 후, git status를 통해 확인해보면 알 수 있다.
만약 뒤처진 커밋이 있다면, github에서 다운받아야 하는 사항이 있다는 것이므로 git pull (원격명) (브랜치명) 명령어를 통해 최신 버전으로 프로젝트를 관리할 수 있다.



5. 브랜치 지우기

(1) 로컬 브랜치 지우기

git branch -D 브랜치 이름

다 쓴 브랜치는 해당 명령어를 통해 삭제한다. 사용했던 브랜치들을 지우지 않고 계속 사용하게 되면 꼬이는 일이 많으므로 사용한 브랜치는 바로바로 삭제하는것이 좋다.

(2) 원격 브랜치 지우기

git push -d (원격명) (브랜치명)

profile
재미있는 아이디어 떠올리는 것을 좋아하고, 이를 구현하여 세상에 즐거움을 선물하고 싶은 사람입니다.

0개의 댓글