Commit - 현재 프로젝트의 상태를 저장하는 것. 스냅샷 형태로 저장한다.
이전 글에 Git이 무엇인지에 대해 간단히 알아보았다.
이제는 실습을 통하여 직접 버전관리를 진행해보도록 하겠다.
Git 초기화
1. 프로젝트 생성
testProject 라는 프로젝트 폴더를 생성하고, 내부에 위와 같은 내용의 txt파일을 넣어주었다.
2. 프로젝트를 Git이 관리하는 폴더로 설정
Sourcetree 화면에서 Create > 탐색 버튼을 클릭하여 내가 생성한 프로젝트 폴더를 지정해준다.
이렇게 폴더 내 파일이 잘 보인다면 성공적으로 설정이 완료된 것이다.
위와 같은 과정을 git 초기화라고 하며, git이 관리할 프로젝트로 설정해 주는 것을 말한다.
Commit 하기
커밋하는 과정은 간단하다.
원하는 파일을 선택하여 스테이지에 올려주고, 화면 하단의 커밋 버튼을 눌러주면 된다.
이 때, 커밋 메시지를 입력하여 어떤 변경점이 있는지 표시해 주어야 한다.
커밋 후에는 이처럼 해당 commit에 대한 여러가지 정보를 확인할 수 있고, 커밋 메세지도 확인이 가능하다.
추가적으로 Commit을 진행해보았다.
우측에 보면 이전 파일과 달라진 점에 대해서 추가(초록색), 삭제(빨간색)으로 표시되는 것을 볼 수 있다.
두 번째로 Commit이 진행된 것을 확인할 수 있다.
원하는 지점으로 가서 소스를 pull 해올 수 있게 되었다.
위와 같은 과정으로 한꺼번에 여러 개의 파일을 commit 할 수도 있다.
Commit History
Sourcetree 왼쪽 상단의 History에서 그동안 했던 Commit 내역을 확인할 수 있다.
각 Commit 마다의 정보를 확인할 수 있고, '커밋' 항목을 보면 각 Commit 마다 고유한 ID를 확인할 수 있다.
commit id는 커밋을 관리하고 되돌릴 때 사용하는 중요한 정보이다.
원격 Repository
지금까지 진행했던 작업은 모두 로컬 Repository (이하 로컬 repo)에서 진행한 작업들이다.
Github처럼 다른 곳에서 접속할 수 있는 공간에 저장하려면, 원격 Repository(이하 원격 repo)에 소스를 저장해야한다.
우리가 구글 드라이브나, OneDrive를 사용하기 위해 폴더를 동기화하는 것처럼
원격 repo와 로컬 repo를 연결시켜주는 것을 추적(Tracking)이라고 한다.
원격 repo는 어떤 repo와 연결되어있는지 정보가 없으므로, 항상 로컬 repo를 기준으로 동작을 이해해야한다.
로컬 repo에 있는 commit을 원격 repo에 반영하는 것을 push라 하고,
원격 repo에 있는 commit을 로컬 repo에 반영하는 것을 pull이라 한다. (로컬 repo를 기준으로 생각하면 된다.)
원격 repo를 로컬에서 사용할 수 있도록 가져오는 것도 가능한데, 이것은 clone(복제)라고 한다.
로컬 repo와 원격 repo 연결하기
로컬 repo와 달리, 원격 repo는 Github에서 가능하다.
1. Repository 만들기
GitHub 로그인 후 좌측 상단에 있는 new 버튼을 클릭하면 아래 화면에 진입할 수 있다.
저장소 명은 프로젝트가 어떤 내용인지 알 수 있게끔 명명하도록 하며, 그 아래 설명을 적어준다.
저장소를 public으로 설정하여 다른 사람들도 접근이 가능하도록 설정하고, 아래 'Create repository' 버튼을 누른다.
생성이 완료되면, 아래처럼 원격 repo의 주소를 확인할 수 있다.
주소를 사용하여, 원격 repo와 로컬 repo를 연결하면 된다.
2. 로컬 repo를 원격 repo에 Tracking 하기
아까 생성한 kimchi-recipe 로컬 repo로 이동하여, 설정 탭에 들어간다.
(로컬 repo명과 원격 repo명을 다르게 생성하여, 원격 repo와 동일한 이름의 로컬 repo를 새로 생성해주었다..)

설정 > 추가 버튼을 누르고
원격 이름을 origin으로 하고, 생성한 원격 repo의 주소를 입력한다.
설정이 잘되었으면, 원격 repo 경로를 확인할 수 있다. 선택 후 확인 버튼을 누른다.
Github 기본 설정과 맞춰주기 위해서, 브랜치명을 main으로 변경하면 Tracking 설정이 완료된다.
Push 하기
Sourcetree 화면 상단의 푸시 버튼을 클릭하면 위와 같은 화면이 나온다. 여기서 푸시할 브랜치를 선택하고, push버튼을 누르면, 내 로컬 repo에 있던 commit이 원격 repo에 반영된다.
에러 Case
혹시나, 푸쉬 하는 과정에서 위와 같은 에러 메세지가 출력되었다면, 계정 인증에 실패하여 발생한 문제이다.
Github에서 Password 인증 방식을 공식적으로 제거하고, personal access token 만을 사용하도록 정책을 변경하였다고 한다. 정책 변경에도 불구하고, 비밀번호로 계속 로그인을 시도하니 에러가 발생하는 것이다.
sourcetree에서는 비밀번호가 틀렸을 시, 새로 입력하는 창이 나타나지 않아 틀린 상태로 계속 인증을 시도하여 같은 메세지가 반복해서 발생하게 된다...
항해99 측에 문의하니, 매니저님께서 링크 하나를 보내주셨고, 해당 블로그를 참고하여 에러를 해결하였다.혹시나 같은 문제로 골머리를 앓고 있는 분들은 링크에 들어가 보는 것을 추천 드리는 바이다.
https://shanepark.tistory.com/214
Sourcetree 에서 잘못된 비밀번호로 저장소 접근 안될때 해결방법
원인 소스트리에서는 한번 입력된 비밀번호가 잘못 되어도 절대 다시 입력하라고 하지 않고, 계속해서 비밀번호가 틀렸다는 메시지만 주구 장창 띄웁니다. 심지어 8월 13일 부로 Github에서는 passw
shanepark.tistory.com
Pull 하기
가져올 소스를 선택하고 pull 버튼을 눌러 진행하면 pull이 완료된다.
다만, 파일 수정 시에 같은 파일을 동시에 수정하게 되어 발생할 수 있는 충돌(conflict)을 막기위해 아래와 같은 과정으로 push를 진행해야한다.
1. 원격 repo와 로컬 repo의 상태를 맞추기 위하여, 로컬 repo에 원격 repo를 가져온다 (pull)
2. 로컬 repo의 작업 내용을 저장한다 (commit)
3. 원격 repo에 로컬 repo의 commit을 반영한다. (push)
즉, 작업 전에 원격 repo를 로컬 repo로 pull 받고, 작업을 진행하면 되는 것이다.
공개 repo의 url을 입력하여 로컬 repo로 복사해올 수 있는 clone에 대해서는 생략하도록 하겠다.
'기타' 카테고리의 다른 글
[AWS MediaConvert] SpringBoot 연동하여 미디어 파일 DASH 포맷으로 변경하기 (0) | 2023.07.21 |
---|---|
JPA 면접 질문 정리 (0) | 2023.06.02 |
Spring Boot 면접 질문 정리 (0) | 2023.06.02 |
Git (3) - merge와 branch (0) | 2023.01.05 |
Git (1) - Git이란? (0) | 2023.01.03 |