Git과 Github 를 사용하기 위해서는 원격 저장소가 필요하다. 원격 저장소를 이용하면 개인 프로젝트를 깃헙이라는 클라우드에 백업할 수도 있고, 만약 오픈소스라면 다른 사람들과 협업도 가능하기 때문에 개발자라면 반드시 사용할 줄 알아야한다. 그러면 깃을 이용하기 위해 Repository를 만들고 깃 배쉬를 통해 연결하는 과정에 대해서 알아보자!
1. 원격 저장소 생성하기
일단 깃허브에 로그인해서 Repositories에 들어간다. (깃허브 주소 : https://github.com/ )
New버튼을 클릭하면
새로운 저장소를 만드는 창이 뜨고 아래와 같이 저장소 이름을 적어준다. 원하면 Descrption을 적어도 된다.
만약 아래부분의 체크박스를 체크하면 원격저장소 연결이 번거로워질 수도 있으니 웬만하면 체크하지 말자.
저장소를 만들면 그 저장소에 들어가지는데 아래 사진과 같은 화면이 뜬다.
친절히도 어떻게 연결해야하는지 설명되어 있기 때문에 사실 포스트 뒤의 내용을 보지 않고 그대로 따라해도 된다.
만약 git init부터 시작해야한다면 ...or create a new repository on the command line 을 따라하고,
이미 로컬저장소가 있다면 ...or push an existing repository from the command line 을 사용하자.
다른 레포지토리로부터 정보를 가져올 것이라면 ...or import code from another repository 를 쓰자.
주의할 점은 초기설정에 대한 설명은 없기 때문에 초기설정은 따로 해줘야한다.
초기 설정에 대한 것이 궁금하다면 2번 시작하는 부분에 링크를 걸어놨으니 참고하길 바란다.
2. Git Bash로 저장소 연결하기
일단 원래 사용하던 로컬저장소가 있고 초기설정과 커밋까지 완료했다고 전제한 실습이다.
위 내용을 모른다면 링크를 참고하자. == > https://myvelop.tistory.com/22
원격저장소의 주소 형식은 아래와 같다.
https://github.com/깃허브아이디/원격저장소이름.git
위의 빨간박스에 있는 주소를 복사 붙여넣기해도 괜찮다.
여기서 origin 의 개념이 중요한다. origin 이란 원격 저장소의 URL short name이다.
다시 말하자면, 깃허브 클라우드 저장소 그 자체라고 생각하면 된다.
$ git branch -M main 을 생략하고 push 명령어를 사용하면 error: failed to push some refs to '원격저장소 주소' 에러 발생하니 주의하자.
$ git branch -M main
$ git remote add origin 원격저장소_주소
만약 잘 연결됐는지 확인하고 싶다면 git remote -v 또는 git ls-remote라고 쳐보자
$ git remote -v
origin 원격저장소_주소 (fetch)
origin 원격저장소_주소 (push)
$ git ls-remote
From https://github.com/pythonstrup/important-app.git
연결이 잘못됐다면 git remote rm origin 을 이용해 연결을 삭제하고 다시 연결을 시도하자.
$ git remote rm origin
$ git remote add origin 원격저장소_주소
3. git push
git push 명령어는 원격저장소에 파일업로드와 병합을 한꺼번에 해주는 명령어이다.
git push 명령을 해보자
$ git push -u origin main
- 결과
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 259 bytes | 259.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/pythonstrup/important-app.git
* [new branch] main -> main
Branch 'main' set up to track remote branch 'main' from 'origin'.
원격저장소에 직접 들어가보면 저장이 잘 되어있는 것을 확인할 수 있다.
만약 나중에 다른 브랜치인 my를 push 하고 싶다면 아래와 같이 하면 된다.
나중에 깃이나 깃허브에서 merge를 실행할 수 있다.
$ git push origin my
4. git pull
만약 회사 프로젝트를 집에서 작업하기 위해 사용하고 싶다고 해보자.
그 방법은 간단하다. git을 통해 원격저장소를 연결하고 프로젝트를 다운로드 받아오면 된다.
아래 사진과 같이 code 버튼을 이용하면 쉽게 원격저장소 주소를 얻을 수 있다.
원격저장소와 연결하고나서, 파일을 가져오는 명령은 git pull이다.
$ cd 디렉토리
$ git init
$ git remote add 원격저장소_주소
$ git pull origin main
- 결과 (다운로드 완료)
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 239 bytes | 2.00 KiB/s, done.
From https://github.com/pythonstrup/important-app
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
폴더에 다운로드된 것을 확인할 수 있다.
다른 브랜치(my)를 가져오고 싶을 때 사용하는 명령어는 아래와 같다.
# origin에 있는 모든 브랜치 다운로드 받기
$ git fetch origin
# my 브랜치 만듦과 동시에 my 브랜치 병합하기
$ git checkout -b my origin/my
5. git clone
git pull 보다 훨씬 강력하고 편한 도구가 있는데 git clone 이다.
git clone 은 git init, remote add, pull 명령을 한 방에 할 수 있는 아주 간편한 명령어다.
$ git clone 원격저장소_주소
-결과
Cloning into 'important-app'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.
pull과 다른 점이라면 텍스트파일이 바로 들어오는 것이 아니라, 프로젝트 폴더가 생성된다.
파일 디렉토리에 들어가 log를 확인해보자
$ cd important-app/
$ git log
commit 670a5417d98e46bda5358950f6b6ba1dbfa3b559 (HEAD -> main, origin/main, origin/HEAD)
Author: BigBell <pythonstrup@gmail.com>
Date: Sat Feb 12 16:18:14 2022 +0900
회사프로젝트 완료
잘 설치된 것을 확인할 수 있다.