우선 깃허브를 사용하기 위한 준비 작업을 마친 후 시작하자.
1. 원하는 위치에 프로젝트를 진행할 폴더를 만든다.
2. 그 폴더를 vsc로 연다.
# Github을 이용하기 위한 사전 작업
0. vsc에서 ctrl+` 단축키로 터미널을 연다.
이렇게 하면 직접 입력하지 않고도 현재 폴더로 이동할 수 있다.
1. 깃 저장소 만들기
git init
이 폴더가 깃의 관리 하에 들어간 것이다.
git config --global user.name "(내 이름)"
git config --global user.email "(내 메일주소)"
이 컴퓨터에서 git을 이용하는 것이 처음이라면 위의 명령어들을 입력해줘야 한다.
2. 현재 시점을 저장하기
지금 이 순간을 타임캡슐에 묻어두는 과정.
git status
담을 게 뭐가 있는지 알 수 있다.
git add -A
이 곳의 모든 것을 git의 타임캡슐에 넣는 것이다.
깃 용어로 stage한다고 한다.
- Untracted files -> add 전
- Changes to be committed -> add 후. commit 해야 할 것들
git commit -m "(설명)"
(설명) 메세지로 커밋한다.
- nothing to commit, working tree clean -> 모두 commit 되어 묻을 게 없다.
# Github 사용하기
1. Github 저장소 만들기
새로운 repository를 만든다.
이미 git으로 관리하는 프로젝트를 올리는 경우 'initialize this repo. w. a README'에는 체크하지 않는다.
2. Github에 소스 올리기
git status로 상태를 확인하고 모두 올린다.
git remote
현 폴더의 원격 레파지토리를 확인하는 명령어
remote==원격이다.
...or push an existing repository from the command line에 있는 코드를 복사한다.
복사한 코드는 아래와 같다.
git remote add origin http://github.com/(깃허브 이름)/(플젝 이름).git
이 github 레파지토리를 이 폴더의 'origin'이란 이름의 원격 저장소로 설정하겠다는 의미
* origin은 바꿀 수 있으나 흔히 기본값으로 사용되는 이름
git push -u origin master
push 명령어는 폴더의 현 브랜치에 커밋된 내용들을이 이름의 원격, 즉 이 레파지토리의 이 이름의 브랜치에 올리겠다는 것이다.
CLI에 다시 git remote를 입력해보면
추가한 원격 레파지토리 이름인 origin이 나온다.
새롭게 변경된 내용을 푸시하려면
add -> commit 후에
git push origin master를 입력하면 된다.
3. 다루지 않을 파일 설정(.gitignore)
- Git으로 관리하고 Github에 올릴 필요가 없을 때
- 올리면 안되는 파일일 때
- 코드를 실행하면 패키지가 다운받아지거나 코드대로 빌드되어서 자동으로 생성되는 파일들은 어차피 코드만 있으면 그때그때 실행해서 만들 수 있는데 굳이 github 용량 차지할 필요 없음
- 보안적으로 중요한 내용
.gitignore
프로젝트 폴더 바로 안쪽, 최상위 공간에 생성한다.
git의 관리에서 제외시킬 파일, 폴더, 기타 요소들을 적음
4. Github의 소스 내려받기
* private -> 다른 사용자 초대해야 함
다른 사용자를 초대하려면 해당 레파지토리에서
Setting -> Collaborators -> 유저네임/이메일로 초대 -> 권한 설정
권한은 레파지를 보기만 할 수 있게 하거나 소스를 푸시할 수 있도록 설정할 수 있다.
프로젝트 폴더가 들어갈 위치를 vsc로 연 다음 터미널을 연다.
그리고 이 레파지토리의 페이지에서 Clone or download를 누르고 주소를 복사한다.
터미널에 아래와 같이 작성한다.
git clone (복사한 주소)
이 vsc에서는 바깥 폴더를 연 것이므로 이 폴더에서의 작업을 하려면
cd \(폴더명)\
으로 폴더 안으로 들어가 작업해야 한다.
5. 작업 주고받기
git fetch
git status
작업이 뒤쳐진 경우,
Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded. 라고 뜬다.
git pull (원격명) (브랜치명)
으로 가져올 수 있다.
이렇게 Git을 사용해 원격으로 협업할 때는
뭔가를 작업하거나 푸시하기 전에 Pull을 하는 게 좋다.
팀원이 작업한 내용을 꾸준히 업데이트 받아야 conflict 방지 가능
※ 그리고 깃허브에 올라간 내역을 Pull로 다 업데이트 받기 전에는 내쪽에서 Push를 할 수가 없다.
6. 브랜치 주고받기
git checkout -b (브랜치명)
브랜치명의 브랜치가 새롭게 만들어 져서 체크아웃까지 된다.
git branch는 로컬에서의 브랜치만 볼 수 있지만
git branch -a
는 로컬과 원격 브랜치 모두를 볼 수 있다.
git checkout -b my-idea origin/my-idea
로컬에 my-idea 이름으로 브랜치를 만들어서 이 원격의 이 브랜치의 내용을 받아오고
그 평행우주로 건너간다라는 뜻이다.
7. 충돌(Conflict) 해결하기
Pull 할 것이 있으면 Push가 안 된다.
그래서 Pull 하려는데 다른 팀원과 같은 부분을 수정해서 충돌하는 경우다.
이 경우 둘 중 하나만 남기거나 합의를 봐야한다.
적당히 파일을 수정하고 저장한다.
git add -A
git commit
:wq
git push
순으로 해결하면 된다.
git push -d (원격명) (브랜치명)
명령어를 이용해 원격의 브랜치를 지울 수 있다.
브랜치 사용법이 잘 와닿지는 않는다.
잘 감이 안 와서 실제로 해봐야 할 것 같다.
'Study > TIPS' 카테고리의 다른 글
HTML, CSS, JS를 이용하면 어떤 것들을 만들 수 있을까? (토이 프로젝트 주제 추천) (0) | 2021.07.29 |
---|---|
[웹] 제작한 웹 사이트 무료로 배포하는 방법 2가지 (0) | 2021.07.29 |
[깃, 깃허브] 깃(Git) 사용법 (w. 얄팍한 코딩사전) (0) | 2021.07.25 |
[깃, 깃허브] 깃(Git)과 Github의 차이 (w. 얄팍한 코딩사전) (0) | 2021.07.25 |