인텔리제이 프로젝트를 깃허브에 연동하자!
Git에 관련된 프로젝트로 전환
Git에 관련없는 프로젝트를 Git에 연동
프로젝트를 생성하고, 깃과 관련없는 프로젝트를 보면 아래 사진과 같다.
이 Version Control System 중, 우리는 Git을 쓸 것이다.
Terminal 창을 열어서 "git init" 이라고 입력하자. 프로젝트에 '.git'이라는 파일이 생기면서 이제 프로젝트의 Version Control System이 Git으로 선택된다.
조금만 기다리면 다음과 같이 변한다.
Git의 파일 체계와 Commit
이제 프로젝트의 파일은 아래의 사이클을 따른다.
(만약 파일체계를 정확히 알고 싶지 않다면,, 대충 읽어보고 밑줄 표시된 부분부터 다시 읽어보자..)
파일은 일단 크게 Tracked와 Untracked로 나뉜다. 일단 Untracked는 나중에 설명하자. 보통의 파일들은 Tracked이다.
파일들을 관리할 때 흐름은 크게 다음과 같다.
- 파일을 수정하면 Unmodified 파일이 Modified 파일이 된다.
- 이렇게 수정된 Modified 파일은 Staged 파일로 바꿔야 한다. Staged 파일은 Commit할 대상 파일들이라고 보면 된다.
- Staged 파일을 Commit하면 비로소 로컬 저장소(local repository)에 현재 코드의 버전이 저장된다.
즉, 수정한 파일들을 2번 과정을 통해 Staged 로 변경하고 3번 과정을 통해 Commit해 저장하는 것이다.
터미널 창에서 직접 commit하기
이 2번 과정에 쓰이는 명령어가 "git add 파일명" 이다.
add의 의미는 다음 커밋에 파일의 현재 상태를 추가하는 것이다. 해당 명령어를 실행하면 파일을 Staged화한다.
여기에는 파일명 뿐만 아니라 디렉토리의 경로도 쓸 수 있고, 그럴 경우 하위 파일들을 모두 add한다.
그렇다면 add는 왜 하는 것일까? 그냥 Modified 상태의 파일을 Commit하면 되게 하면 될텐데..
만약, A라는 파일을 add해서 Staged 됐다고 하자. 그런데 수정사항이 생겨 이 파일을 다시 수정했다. 이러면 Git은 아까 add된 Staged 상태의 파일 A와 다시 수정된 Modified 상태의 파일 A, 2개를 모두 생각한다. 여기서 Commit할 경우, Staged 상태의 파일만 Commit되는 것이다.
이제 3번 과정을 보자. 이 명령어는 "git commit -m "first commit"" 이다.
명령의 옵션에 -m이 붙어있다. 이것은 커밋 메시지를 뒤에 써주겠다는 소리이다. 반드시 써야한다. 만약 안 쓰면 다음과 같은 편집기가 튀어나와 커밋 메시지를 입력하라고 협박할 것이다.
VIM 편집기를 쓸 줄 안다면 여기에 직접 입력하는 것도 좋겠지만.... 굳이...
또한 이렇게 각각의 파일들을 add 해준 뒤, commit 해주면 당연히 좋겠지만.... 보통의 경우 모든 파일을 add 시키고 commit 시키고 싶다. 당연히 간편하게 할 수 있다.
"git commit -am "커밋메시지"" 와 같이, 옵션에 a를 추가해주면 자동으로 add된다.
즉... 위의 지식들은 알고 있되, 보통의 경우에는 이 명령어를 써서 commit하자. 이러면 add는 신경쓰지 않아도 된다.
IntelliJ 환경에서 commit하기
제일 왼쪽에 보면 Commit이라는 칸이 있을 것이다. 눌러보자.
터미널 창에서 했던 것과 다르게 매우 편리하다. Commit할 파일들을 고르고 아래 칸에 커밋 메시지를 쓰고 Commit 버튼을 누르기만 하면 된다. 아까 설명했던 add까지 한 번에 실행된다.
어떤 명령어가 실행됐는지 보려면 아래 Git 버튼을 눌렀을 때 출력되는 창에서 Console 탭을 누르면 확인할 수 있다. (별 필요 없긴 하다...)
commit 완료!
여기까지 했다면 버전 관리가 시작된 것이다. 하단의 Git 버튼을 클릭하면 다음과 같은 창이 뜬다.
first commit 이라는 commit 내역이 생겼다.
아무것도 하지 않았다면 왼쪽에 나오는 branch는 main 혹은 master일 것이다. 브랜치명이 master일 경우, 우클릭해서 rename해주자. 원래 기본 브랜치명을 master로 했지만 이게 '주인'이라는 뜻이므로 main으로 바뀌었다.
원격 저장소 (remote repository)에 연결
이제 Github 페이지에 원격 저장소를 만들고 내가 만든 프로젝트와 연결할 것이다.
Github 사이트에 들어가 회원가입을 하고 Repository를 만들자. (이건 쉽다...^^)
만들어진 Repository에 초록색의 "<>Code" 버튼을 클릭하면 아래와 같이 나온다.
여기서 나오는 주소를 복사해주자.
이제 나의 컴퓨터로 돌아와서 아까 내 프로젝트에 들어간다. 터미널 창을 켜서 다음과 같은 명령어를 입력한다.
"git remote add origin 아까_복사했던_주소"
origin 이라는 것을 내 원격 저장소로 만든 것이다.
물론 터미널이 아니라 IntelliJ에서도 할 수 있다.
상단의 Git 버튼을 눌러 Manage remotes 를 누른다. 여기서 + 버튼을 눌러 origin 이라는 이름에 방금 주소를 넣는다.
origin 은 프로젝트의 원격 저장소 url을 부르는 관습이다. 다른 걸로 써도 되지만 그러지 말자...
프로젝트 받아오기 (Git clone)
위에서 설명한 것은 내가 직접 만든 프로젝트에 대한 것이었다.
근데 프로젝트의 팀장이 내가 아닌 경우... 혹은 다른 프로젝트를 다운로드 받고 싶은 경우 등의 경우는 이 방식을 따르자.
받아오고 싶은 프로젝트의 원격 저장소 (repository)에 들어가 아까와 같이 주소를 복사한다.
이제 나의 컴퓨터로 돌아와서 아무 콘솔 창이나 띄워준다. cmd, git bash, PowerShell 등 상관없다.
내가 프로젝트 폴더를 받아오고 싶은 경로로 이동한다. 예를 들어, 바탕화면에 프로젝트 폴더를 받아오고 싶다면 콘솔 창의 현재 경로를 바탕화면에 놓는 것이다. 그리고 다음과 같은 명령어를 실행한다.
"git clone 아까_복사했던_주소"
이러면 현재 경로에 프로젝트 파일이 생길 것이다. 이 프로젝트 파일을 열어보면 github에 올라와 있던 코드 그대로 다운받아져 있을 것이다.
그리고 무려 원격 저장소에 연결까지 되어 있다!! (그 원격 저장소에서 받아온 거니까 당연하긴 하지...)
다음 게시글에는 아까 생략했던 Untracked파일과 .gitignore 에 대한 것, push, merge 등에 대한 것을 작성하겠다.
참고 : 프로 Git 2판 http://www.yes24.com/Product/Goods/24841824
'Spring Boot' 카테고리의 다른 글
Spring의 새로운 동기식 HTTP Client, RestClient (0) | 2024.03.09 |
---|---|
JWT 총정리 (2) - Access Token, Refresh Token (1) | 2024.03.08 |
JWT 총정리 (1) - JWT의 원리와 흐름 (1) | 2023.10.09 |
Git in IntelliJ - 인텔리제이에서 Git의 모든 것 (2) (0) | 2023.02.03 |
[Spring Boot] Unit Test (단위 테스트) vs Integration Test (통합 테스트) (0) | 2023.01.20 |