본격적으로 git실습을 진행하기 전에, git을 사용하기 위해서는 github와 같은 호스팅 서비스가 필수적이므로 github에 대해 알아보자.
github란?
- 깃(Git)을 기반으로 소스 코드를 호스팅 하고, 협업 지원 기능들을 지원하는 웹서비스이다
- github를 통해서 내 프로젝트를 업로드 할 수 있고, 변경된 히스토리 확인 등 다양한 기능을 사용할 수 있다.
깃을 처음 배우는 사람들은 대부분 github를 사용하여 실습을 진행하게 된다. 사실 github와 비슷한 서비스를 제공하는 Gitlab과 bitbucket도 있지만 대부분 회사 내부용으로 많이 사용하며 실제로도 github가 가장 많은 오픈소스 프로젝트를 보유하고 있다. 또, Action 등 지원하는 기능의 다양성도 많고, 참고할 자료도 많아 github를 가장 많이 사용한다.
처음 github 홈페이지에 들어가면 아래 같은 화면을 볼 수 있다.
깃헙 이용을 위해서는 계정이 필요하다. 우측 상단의 Sign Up을 통해 우선 회원가입을 진행한다.
회원가입 후, 로그인을 하면 대쉬보드 페이지가 보이는데,
좌측에는 내가 가진 레포지토리(Remote Repository), 관련 활동(Issue)의 내용이 있고, 중앙에는 내가 팔로우 한 사람들의 다양한 활동이 보인다.
깃허브에서 가장 먼저 할 일은 바로 레포지토리를 만드는 것이다. 원격 레포지토리를 만들어서 개발자들이 로컬에서 작성한 코드들이 외부 저장소에 저장되어, 함께 협업할 수 있도록 한다.
레포지토리를 생성하는 방법은 매우 간단하다.
위 이미지 좌측 상단에 있는 초록색 New버튼을 클릭하여 레포지토리 생성화면으로 이동한다.
Repository name칸에 생성할 Remote Repository의 이름을 입력하고, 공개 레포지토리인지, 비공개 레포지토리인지 체크해준 뒤, Create repository 버튼을 클릭하여 레포지토리를 생성한다.
레포지토리를 생성했다면, 다음 2가지 경우로 나누어 진다.
1. Git으로 관리되는 새로운 로컬 레포지토리를 만들어, 방금 전 생성한 원격 레포지토리와 연결하는 경우 (빨간색 박스)
2. 기존에 있는 로컬 레포지토리를 새로 만든 원격 레포지토리와 연결하는경우 (파란색 박스)
우선 1번의 경우, 원격 레포지토리가 로컬 레포지토리보다 먼저 생성되어 작업을 시작하는 상황이라고 볼 수 있다. 그렇기 때문에 만들어진 원격 레포지토리에 연결해줄 로컬 레포지토리를 만드는 것이다. 로컬 레포지토리를 만드는 것은 어렵지 않다. 위 박스안의 명령어대로 그대로 입력만 해주면 된다. 순서대로 명령어를 입력해보자.
echo "# GitTest" >> README.md
- README.md 파일을 생성한다.
git init
- 폴더를 깃으로 관리되는 로컬 레포지토리로 초기화한다. 명령어를 입력하면 숨긴 폴더로 .git 폴더가 생긴것을 확인할 수 있다. 해당 폴더가 생성되면, git으로 관리되는 폴더라는 것을 알 수 있다.
git add README.md
- add 명렁어를 통해 내가 변경한 README.md 파일을 Staging Area에 올린다. Staging Area에 작업파일이 올라가면 해당 파일들은 commit에 기록이 남게된다.
* git add . 을 입력하면 워킹 디렉토리에 있는 모든 파일을 Staging Area에 올린다.
[git 용어 확인 2023.11.25 - [Git] - [Git, github] Git 시작하기 (1)]
git commit -m "first commit"
- commit 명령어를 사용하면 Staging Area에 올라와있는 파일들에 대한 커밋이 이루어진다. -m 명령어뒤에는 예제와 같이 내가 원하는 커밋 메시지를 남길 수 있다.
git branch -M master
- 현재 브랜치의 명을 master로 바꾼다. git branch -M <기존 브랜치 명> <변경할 브랜치 명> 형태로 브랜치 명을 변경할 수 있다.
git remote add origin https://github.com/FreeBono/GitTest.git
- 현재 깃 저장소에 Remote Repository를 추가하는 명령입니다. 이 명령을 사용하면 로컬 Git 저장소와 원격 저장소 간에 연결을 설정할 수 있다. git remote add origin <원격 저장소 URL> 명령을 사용하여 로컬 저장소에서 원격 저장소로 코드를 푸시하거나(fetch) 원격 저장소에서 코드를 가져올 수 있게 된다.
* origin은 보통 기본적으로 사용되는 원격 저장소의 별칭(alias)으로 필수적인 이름은 아니나, 대부분 origin을 기본으로 사용한다.
git push -u origin master
- git push는 로컬 레포지토리의 변경 내용을 원격 레포지토리에 적용하는 것이다. 하지만 처음 git push 명령어만 입력을 하면, push가 정상적으로 작동하지 않을 것이다. 그 이유는 현재 로컬 브랜치가 어떤 원격 브랜치와 연결되어 있는지 git이 알 수 없기 때문이다. 그렇기 때문에 git push -u <연동할 원격 레포지토리의 이름(remote add로 설정한)> <브랜치 명> 형식으로 최초 push를 해주어야 한다.
이후, 레포지토리를 확인해보면
위와 같이 정상적으로 로컬의 작업내용이 반영된 것을 확인할 수 있다.
이렇게 원격 레포지토리를 우선 생성한 후, 로컬 레포지토리를 만드는 방법을 알아보았다. 이번에는 이미 깃으로 관리되는 로컬 레포지토리를 원격레포지토리와 연동하는 2번 방법을 알아보자. 다음은 1번에서 만든 로컬 레포지토리에서 새로만든 gitTest_2 원격 레포지토리를 연결하는 과정이다.
git remote add example1 https://github.com/FreeBono/GitTest_2.git
- 1번에서 원격 레포지토리를 연결하는 과정부터 시작하면 된다. git remote -v 를 통해 원격 레포지토리 목록을 확인하면 이미 1번과정에서 추가된 origin이 올라와 있을 것이다. 그렇기 때문에 이번엥는 example1 이라는 이름으로 원격 레포지토리를 추가하였다.
git branch -M master
- 1번 과정과 동일하다
git push -u example1 master
- 1번과정에서 같이 example1을 upstream 브랜치로 설정해주며 로컬 저장소의 변경내용을 gitTest_2 레포지토리에 반영될 수 있도록 한다.
이후, GitTest_2 레포지토리를 확인해보면
위와 같이 정상적으로 변경내용이 반영되었음을 알 수 있다.
이번 포스팅에서는 로컬 레포지토리와 원격 레포지토리를 연동하는 법을 알아보았다. 사실 add, commit, push와 로컬, 원격 레포지토리의 개념만 알고있어도, 기본적인 깃의 사용은 가능하다고 생각된다. 하지만 git을 사용하다 보면 수 많은 변수와 에러를 마주하게 된다. 다음 장에서는 Visual Studio와 git bash를 활용해서 현업에서 깃이 어떻게 사용되는지 알아 볼 수 있도록 하겠다.
'Git' 카테고리의 다른 글
[Git] git revert, git reset 으로 커밋 되돌리기 (5) (0) | 2023.11.29 |
---|---|
[Git] git commit --amend 명령어로 commit 수정하기 (4) (0) | 2023.11.28 |
[Git] git log, git reflog로 commit 히스토리 조회하기 (3) (1) | 2023.11.27 |
[Git, bash] fatal: unable to access port 443: Coudln't connect to server 에러 해결 (0) | 2023.11.27 |
[Git, github] Git 시작하기 (1) (0) | 2023.11.25 |