이 글은 제가 교육받을 때 했던 팀 프로젝트에서의 GitHub, GitHub Desktop 사용방법을 기준으로 포스팅했으므로 현업에서의 사용 방법과는 거리가 멀 수 있습니다.
GitHub 계정과 GitHub Desktop, VS Code(옵션)를 준비
GitHub 사용 방법을 찾아보다 보면 Web에서 리포지토리 생성하고 push, pull, branch 생성 등등을 Git Bash 또는 명령 프롬프트에서 사용하는 방법을 많이 찾아볼 수 있는데
이번 포스팅에서는 Git 명령어를 사용하지 않고 가능한 GitHub Desktop로만 리포지토리 생성, Commit, Publish, Clone, branch 생성, merge를 하는 방법을 알아보도록 하겠습니다.
GitHub Web 또는 Git bash를 사용하여 GitHub을 이용하는 방법은 구글링하면 많이 나오므로 이 포스팅에서는 데스크탑 버전을 중점으로 설명하도록 하겠습니다.


Name:리포지토리(프로젝트) 이름Description:리포지토리 설명Local path:프로젝트 폴더를 생성할 root 폴더 지정Initialize this repository with a README:이 리포지토리에 대한 README.md 파일을 생성합니다.
📌 추후 CRA 사용 시 README.md 파일이 같이 생성되므로 체크하지 않음.Git ignore:리포지토리 생성할 때 .gitignore 파일을 같이 생성합니다.
📌 git ignore 역시 CRA 사용 시 생성되므로 None으로 설정License:리포지토리의 라이선스를 설정합니다.
📌 리포지토리를 공유하거나 오픈소스 프로젝트를 생성할 게 아니라면 None으로 설정해 주세요.
React 기반 프로젝트를 생성하기 위해서 CRA를 사용하도록 하겠습니다.

npx create-react-app .을 입력하여 React 프로젝트를 생성합니다.
📌 명령 프롬프트가 아닌 VS Code 터미널에서 실행해도 무관합니다.

❓ 환경설정은 만들려는 프로젝트의 주제에 따라서 각자 다르기 때문에 알아서 설정해 주시면 됩니다.
예시
- 프로젝트 구상 단계에서 결정했던 사용할 패키지, 플러그인 설치
- package.json 설정
- 프로젝트 디렉토리 구조 설정

❓ Keep this code private?
현재 프로젝트가 모든 사람이 볼 수 있는 공개 리포지토리로 등록할 것인지 허용된 사람들만 볼 수 있는 비공개 리포지토리로 등록할 것인지를 설정합니다.
GitHub 리포지토리에서 Clone을 받아오는 방법은 여러 가지가 있는데 여기서는 총 3가지의 방법을 알려드리려고 합니다.
#1. GitHub Repository HTTPS 주소로 Clone 받아오기
#2. GitHub Repository 웹 페이지에서 GitHub Desktop으로 Clone 받아오기
#3. GitHub Desktop으로 Clone 받아오기
❗ Clone을 하려는 리포지토리가 Private 일 때 생성자 본인이 아닌 다른 팀원이 프로젝트를 받아오기 위해서는 리포지토리 액세스 권한이 있어야 합니다.
❓ 리포지토리 설정으로 들어가 Collaborators - Manage access에서 공동 작업자를 추가해 주세요📌 같이 공동 작업할 사람이 없고 다른 컴퓨터에서도 작업할 일이 없다면 액세스 권한에 대해서는 무시하셔도 됩니다.

git clone [GithubURL]를 입력하여 Clone을 받아옵니다.
❓ [GithubURL]에는 리포지토리 웹페이지에서 복사했던 HTTPS 주소를 넣어주면 됩니다.

❗ Clone을 받은 뒤 프로젝트 root 폴더로 이동한 후 새로운 브랜치를 생성하고 작업을 진행해야 합니다.
- 개인 프로젝트를 진행하더라도 어떠한 기능을 구현할 때 구현하는 기능별로 브랜치를 만들어서 작업하는 게 좋습니다.
❓ 그래야 나중에 이력 관리하기도 편하고 문제가 생겼을 때 restore 하기 편합니다git checkout -b <branchName>
checkout 명령에 -b 옵션을 넣으면 브랜치 작성과 체크아웃을 한 번에 실행할 수 있습니다.git branch <branchName>
해당 명령어로도 브랜치 생성이 가능하지만 생성 후에git checkout <branchName>명령어로 작업 브랜치를 변경해 주어야 합니다.
첫 번째로 사용했던 방법은 리포지토리 HTTPS 주소를 이용해서 터미널에서 git clone 명령어로 받아왔지만
이 포스팅의 최종 목적은 git 명령어를 사용하지 않고 GitHub Desktop으로만 GitHub을 더욱 편하게 이용하는 것이기 때문에 명령 프롬프트, 터미널을 사용하지 않고 Clone을 받아오는 방법에 대해서 설명하도록 하겠습니다.
❗ GitHub Desktop을 사용한다고 하더라도 git 관련 명령어는 알고 있는 게 좋기 때문에 따로 공부하시는 걸 추천합니다.


❗ 만약 프로그램이 실행되지 않는다면 1번, 3번 방법으로 시도해 보세요.




마지막으로 GitHub Desktop 프로그램만 사용해서 Clone을 받아오는 방법을 알아보도록 합시다.



- 현재 브랜치를 다른 브랜치와 병합하기 위해서는 모든 수정사항을 commit 해야 합니다.
❗ master 브랜치에 바로 병합하는 방법은 현업에서 권장하지 않고 브랜칭 전략, 커밋 메세지 작성 규칙들이 프로젝트, 팀별로 다를 수도 있기 때문에 참고하시길 바랍니다.


❓ Undo 버튼은 원하는 특정 commit 상태를 되돌리고 나머지 commit 들은 그대로 유지시키는 기능입니다.
📌 같은 기능을 수행하지만, 되돌린 이후의 commit을 모두 제거하는 reset 기능도 존재합니다.




