우리는 둘을 어떻게 사용하는 것이 좋을까?
Git에서 뭔가를 실행하기 위한 어떤 명령들을 사용할 때는 CLI를 사용하고, 프로젝트의 상태를 Git상에서 자세히 살펴보아야 할 때는 소스트리(GUI)를 사용합니다 - 얄팍한 코딩사전
이처럼 둘을 혼용해서 사용하는 것이 효율적인 방법이다. 당장 명령을 내리는 것은 명령줄을 입력해서 사용하는 인터페이스인 CLI를 이용하고, 프로젝트의 상태를 Git상에서 시각적으로 살펴보기 위해서는 그래픽 요소를 활용한 인터페이스인 GUI를 사용하는 것처럼 말이다.
먼저 적당한 위치에 원하는 이름으로 폴더를 생성하고, VS Code에서 해당 폴더를 연다.
터미널에서(Git Bash 사용) git init
명령을 실행한다.
그러면, 다음과 같이 해당 폴더에 숨김파일 형태로 .git이라는 폴더가 생성된다.
이 .git폴더에는 Git이 프로젝트를 관리한 내역들이 들어가게 된다. 예를 들어 이 새롭게 만든 폴더(git init
을 실행한 폴더) 이름이 git-practice라면, git-practice 폴더는 Git으로 관리되고 있는 폴더이다.
만약, git-practice폴더 안에 생성된 .git폴더가 지워지게 된다면 현재 파일들은 유지되지만, 지금까지 git-practice 폴더에서 Git이 관리한 내역들은 모두 사라지게 된다.(삭제 전 시점까지의 이동하고 싶은 여러 변경사항들로 되돌아갈 수 없게 됨 조회 불가능 !)
자, 그럼 소스트리를 활용해 보자. 현재 git-practice파일은 Git으로 관리되고 있는 파일, 즉 현존하는 저장소이다. 그러므로 소스트리에 로컬 저장소 추가
를 하거나 드래그 하는 방식으로 추가한다.
일단 로컬 저장소에 저장되어 있는 git-practice의 북마크를 삭제하고, git-practice안의 .git폴더를 삭제하였다. 이제 git-practice폴더는 Git으로 관리되고 있는 폴더가 아니다.
이러한 폴더는 소스트리에 드래그하거나, 로컬 저장소 생성
을 통해 Git이 관리하는 저장소로 만들 수 있다.
그리고, git-practice 폴더에 들어가보면 .git폴더가 생긴 것을 확인 할 수 있다.
Git의 관리에서 특정 파일이나 폴더를 배제해야 하는 다양한 경우들이 있다. 이를 크게 2가지로 나눠보면 다음과 같다.
1) Git의 관리에 포함할 필요가 없을 때
2) Git의 관리에 포함해서는 안될 때
이러한 Git의 관리에서 배제해야 할 요소들은 .gitignore이라는 파일에 따로 지정하여 Git이 무시하고 넘어가도록 할 수 있다.
먼저, 프로젝트 폴더 git-practice에 중요한 정보(Ex 아이디와 패스워드)가 담겨있는 secret.yaml 파일을 생성하였다.
터미널에 git status
명령을 사용하여 Git이 관리하게 될 파일들을 조회해 보면, secret.yaml 파일 또한 포함되어 있는 것을 볼 수 있다.
하지만, 이 파일은 중요한 정보가 담겨져 있는 파일이기 때문에 Git의 관리에서는 배제하고 싶다. <- 이럴때 .gitignore파일을 생성하여 배제하고 싶은 파일이나 폴더를 지정하여 Git이 무시하고 넘어가도록 한다.
위와 같이 .gitignore에 중요한 정보가 담긴 파일 secrets.yaml을 지정한 뒤, 터미널에서 git status
명령을 실행해 보면, secrets.yaml 대신 .gitignore이 표시되는 것을 알 수 있다.