카테고리 없음

백지부터 시작하는 Git & Github(5) - Github의 다양한 기능들

sungw00 2022. 9. 30. 14:34
728x90

Remote Add
지난 시간에 생성한 원격 저장소와 로컬 저장소를 연결하는 방법이다.
로컬 저장소에 원격 저장소 URL 정보를 등록해줘야 한다.
git remote add [alias] [url]
git remote add origin https://github.com/.../new

1. 연결하고자 하는 원격 git 저장소의 Clone 주소를 복사한다.

2. git init을 하여 초기화를 진행한 로컬 디렉토리 경로에서 git remote add [alias] https://github.com/.../~~~.git 을 입력하여 원격저장소를 추가한다.
여기서 alias 부분에는 통상적으로 origin으로 많이들 사용하지만 여기에는 자신이 원하는 별명으로 주어도 된다.

3. git remote -v 로 연결되어 있는 원격저장소를 확인해보면 가장 왼쪽에 지정한 alias 이름이 뜨게 되고, 연결이 잘 된 것을 볼 수 있다.

Fetch
- 원격 저장소에 있는 내용을 로컬로 받는 명령
- git fetch [alias] [branch]
- 사용 예시) git fetch origin

1. 먼저 로컬저장소에서 git remote -v로 현재 리모트중인 저장소의 정보를 확인한 후 git fetch [alias] 를 입력하여 해당 저장소의 내용을 내려받는다. 그리고 ls로 파일 목록을 확인해본다.

하지만 fetch는 로컬 저장소는 변함이 없음을 확인할 수 있다.

fetch는 원격 저장소의 내용을 받긴 하지만, 로컬 저장소는 변경되는 사항이 없고, Pull은 원격 저장소의 다운로드 함과 동시에 Merge 작업이 일어나면서 로컬 저장소에 바로 반영이 된다. git fetch origin, git merge 두 개의 커맨드를 하나로 실행하는 것이 Pull 명령어이다.

Pull
- 원격 저장소에 있는 내용을 로컬 저장소로 받고 자동으로 Merge 동작을 수행하는 명령
- git pull [alias] [branch]
- git pull origin

1. pull을 하기 위해 아래 명령어와 같이 입력해본다.

2. git pull github main 을 입력하여 원격 저장소의 내용을 받아온다. 나는 이미 명령어를 한번 실행한 상태였기 때문에 처음 명령어를 입력하였다면 "이미 업데이트 상태입니다." 라는 메시지는 출력되지 않을 것이다.

3. 해당 디렉토리의 파일 목록을 확인해보면 다음과 같이 원격 저장소의 파일들이 다운로드 받아진 것을 확인할 수 있다.

Push
로컬 저장소의 내용을 원격 저장소로 업로드
git push [alias] [branch]
git push -u origin master
브랜치명을 따로 입력하는 이유는 master 브랜치로 업로드 하는 경우도 있지만, 다른 브랜치로 업로드 할 수도 있기에 적어줄 수 있다.

1. 먼저 실습을 위해 test.html 파일을 만들고 커밋한다.

여기까지 하면 로컬 저장소에서 할 수 있는 작업까지는 완료된 것이다. 하지만 사용자의 실수 또는 하드웨어적인 문제로 인하여 OS가 날라가거나, 저장장치가 고장난 경우라면..?? 이 파일들을 살릴 수 없을 것이다. 그렇기 때문에 이 파일들을 백업할 수 있어야 한다.

2. git remote add origin [github주소] 를 입력하여 원격저장소와 연결하고, git remote -v로 원격저장소와 연결이 잘 되었는 지 확인한다.

3. 이제 이 상태에서 git push -u origin master 를 입력하면 푸시가 정상적으로 완료된다.

Clone
- 공개된 원격 저장소를 다운로드 하는 명령
- git clone [url]
- git clone https://github.com/sungwoo/test.git
- 원격 저장소를 로컬 저장소에 다운로드(복제)하여 저장한다.
- url 뒤에 붙는 경로는 https://github.com/[사용자명]/[저장소명] 순서이다.

1. git clone 명령어 뒤에 다운로드 하고자 하는 git 저장소의 URL 주소를 입력한다.

2. 여기서는 faceboot의 react를 Clone 하였다. ls로 확인해보면 성공적으로 내려받아 진 것을 확인할 수 있다.

3. 이런식으로 원격 저장소의 내용을 내 컴퓨터로 간단하게 내려받을 수 있는 명령어이다.

Pull Request란?
- 오픈 소스에서 기능 개선 또는 버그가 있는 경우 직접 수정하고 원작자에게 반영 요청을 하는 기능
- 다음과 같은 상황에서 사용
* 내가 사용하는 오픈 소스에 버그가 있는 경우: 동일한 소스를 사용하는 다른 사람들도 같은 버그가 발생하는 것을 방지
* 신규 기능을 추가하고 싶은 경우: 기존에 있는 기능을 개선하여 원작자에게 의사 전달 후 업그레이드를 요청

Pull Request의 8단계
1. 원작자의 저장소를 내 저장소로 Fork 한다.
2. 해당 저장소를 로컬 저장소로 Clone 한다.
3. Master 브랜치에서 Develop 또는 다른 작업을 할 브랜치를 생성
4. 생성한 브랜치로 Checkout 한다.
5. 해당 브랜치에서 수정이 필요한 부분의 소스를 변경한다.
6. 변경한 소스를 로컬 저장소에 저장(Commit)한다.
7. 로컬 저장소의 작업 브랜치를 원격 저장소로 업로드(Push) 한다.
8. 변경 사항을 원작자에게 원본 소스에 반영 요청 송신(Pull Request)한다.

728x90