해당 글은 학습 PR을 올려야하는 동아리원들을 위해 그 과정을 설명한 글입니다.
다만, 이 글에서는 IntelliJ Ultimate 버전과 VSCode를 기준으로 설명하고 있습니다. 다른 IDE를 사용하시다가 PR을 올리는 방법에 어려움을 겪으셨다면 따로 연락부탁드려요!
인텔리제이 Ultimate 버전 사용 방법
인텔리제이 학생 인증 방법은 따로 정리하지 않고 잘 정리된 글을 공유해드리겠습니다.
Git
Git이 무엇인가요?
git은 쉽게말해 개발자들과 소스 코드를 공유하고, 백업하고, 저장하도록 지원해주는 버전관리가 가능한 분산형 버전 관리 시스템(Version Control System) 의 한 종류입니다.
여기서는 git에 대한 개념과 원리보다는 사용법에 중점을 두겠습니다!
[GIT] ⚡️ git 개념 & 원리 (그림으로 알기쉽게 비유 😃)
Git 설치하기
Windows, macOS, Unix 계열 시스템에서 Git을 설치하는 방법을 말씀드리겠습니다. 자신의 환경에 맞는 설치 방법을 선택해주세요!
Windows에서 Git 설치 방법
Windows에서 Git을 설치하는 방법은 다음과 같습니다.
1. Git for Windows 설치
가장 일반적인 방법은 Git for Windows를 설치하는 것입니다. Git Bash라는 터미널을 제공하여 Linux와 비슷한 환경에서 Git 명령을 사용할 수 있습니다.
- Git 공식 웹사이트로 이동합니다: https://git-scm.com/.
- "Download for Windows" 버튼을 클릭하여 최신 Git 설치 프로그램을 다운로드합니다.
- 다운로드한 설치 파일을 실행하여 설치 과정을 진행합니다. 설치 도중 중요한 몇 가지 옵션을 선택할 수 있습니다:
- Git Bash 사용: 기본적으로 Git Bash 터미널을 사용할 수 있도록 설정됩니다.
- Git과 관련된 경로 설정: 기본 옵션으로 두는 것이 좋습니다.
- Git Line Ending 변환: 기본 옵션으로 선택하여 Windows와 Unix 시스템 간의 줄 바꿈 문제를 해결합니다.
- 설치가 완료되면 Git Bash 또는 Windows 명령 프롬프트를 실행한 후 다음 명령어로 Git이 정상적으로 설치되었는지 확인합니다:
git --version
2. Windows Package Manager (winget)로 설치
Windows Package Manager인 winget을 사용하여 Git을 설치할 수 있습니다. 최신 Windows 10/11에서 지원됩니다.
- Windows PowerShell 또는 명령 프롬프트를 관리자 권한으로 실행합니다.
- 다음 명령어를 입력하여 Git을 설치합니다:
winget install --id Git.Git -e --source winget
- 설치가 완료되면
git --version
명령어로 설치된 Git 버전을 확인합니다.
3. Scoop으로 설치
Windows에서 Git을 설치할 때 Scoop이라는 패키지 관리 도구를 사용할 수도 있습니다.
- Scoop을 설치하기 위해 PowerShell을 열고 다음 명령어를 입력합니다:
iwr -useb get.scoop.sh | iex
- Scoop이 설치되면 다음 명령어로 Git을 설치합니다:
scoop install git
macOS에서 Git 설치 방법
1. Xcode Command Line Tools 이용
macOS에 Git이 기본적으로 설치되어 있을 수 있습니다. 터미널을 열고 다음 명령어를 실행해 Git이 설치되어 있는지 확인합니다:
git --version
Git이 설치되어 있지 않다면, 다음 명령어로 Xcode Command Line Tools를 설치할 수 있습니다:
xcode-select --install
설치가 완료되면 git --version
명령어로 설치 여부를 확인할 수 있습니다.
2. Homebrew로 설치
Homebrew 패키지 관리 도구를 사용하여 Git을 설치할 수 있습니다. Homebrew가 설치되어 있지 않다면, 다음 명령어로 Homebrew를 먼저 설치합니다:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
그 후, Git을 설치하려면 다음 명령어를 입력합니다:
brew install git
설치가 완료되면 다음 명령어로 설치된 Git 버전을 확인합니다:
git --version
3. Git 공식 웹사이트에서 설치
Git을 직접 다운로드하여 설치할 수도 있습니다.
- Git 공식 웹사이트에 접속합니다.
- "Downloads" 섹션에서 "macOS"를 선택합니다.
- 제공된 Git 설치 프로그램을 다운로드하고 설치 지침을 따릅니다.
Unix 계열 배포판에서 Git 설치
1. Debian 계열 (Ubuntu, Linux Mint 등)
Debian 계열 배포판에서는 apt
패키지 관리자를 사용하여 Git을 설치할 수 있습니다. 아래 명령어를 입력하여 Git을 설치합니다:
sudo apt install git-all
2. Red Hat 계열 (Fedora, CentOS 등)
Red Hat 계열 배포판에서는 dnf
패키지 관리자를 사용하여 Git을 설치할 수 있습니다. 아래 명령어를 입력하여 Git을 설치합니다:
sudo dnf install git-all
3. 기타 Linux 배포판
다른 Unix 계열 배포판에서는 Git 설치 방법이 다를 수 있습니다. 각 배포판에 맞는 설치 방법은 Git 공식 웹사이트에서 확인할 수 있습니다.
위 방법들을 따라 Git을 설치한 후, 설치가 완료되었는지 확인하려면 다음 명령어를 입력하여 설치된 Git 버전을 확인하시면 됩니다:
git --version
사용자 정보 설정
- git 사용자 정보 설정 (윈도우의 cmd 창 또는 git bash, 파워셸/ mac 터미널, iterm / IntelliJ 터미널 등등)
git config --global user.name "사용자 이름"
git config --global user.email "사용자 이메일 주소"
- IntelliJ 설치(VScode를 사용하셔도 무관합니다.) 및 Github 로그인 및 연동
PR 작성 과정
branch를 새롭게 생성해서 PR을 작성하셔도 무관합니다. 이 글에서는 fork / clone을 중점으로 설명해보겠습니다.
📌 IntelliJ와 VSCode 중에 사용하시는 IDE를 참고하셔서 과제 PR 제출해주시면 됩니다!
서버 과제 제출 컨벤션
처음 과제를 작성하는 경우
- 원본(COW-Spring-4 또는 공유된 저장소) 레포지토리 fork / clone
- 아래 사진 설명처럼 과제 구현 후 push 합니다.
- Pull Request를 올려 제출합니다.
PR 제목 형식은 '[N주차] 나경호(본인 성명) 학습 PR 제출합니다.'
예시: [0주차] 나경호 학습 PR 제출합니다. - 위의 양식은 각 과제
위의 과정에서 1번까지 완료한 경우
- 내가 작업한 내용 외에 업데이트된 내용이 있을 수 있으므로 fork / clone한 레포지토리를 동기화해줍니다.(다음과 같은 상태가 되도록 Sync fork 해줍니다.)
- 이후엔 위의 방법과 같이 작업 후 PR을 올리면 됩니다.
웹 과제 제출 컨벤션
처음 과제를 작성하는 경우
- 원본(COW-React-4 또는 공유된 저장소) 레포지토리 fork / clone
- 아래 사진 설명처럼 과제 구현 후 push 합니다.
- Pull Request를 올려 제출합니다.
PR 제목 형식은 '[N주차] 최준호(본인 성명) 학습 PR 제출합니다.'
예시: [0주차] 최준호 학습 PR 제출합니다. - 위의 양식은 각 과제
위의 과정에서 1번까지 완료한 경우
- 내가 작업한 내용 외에 업데이트된 내용이 있을 수 있으므로 fork / clone한 레포지토리를 동기화해줍니다.(다음과 같은 상태가 되도록 Sync fork 해줍니다.)
- 이후엔 위의 방법과 같이 작업 후 PR을 올리면 됩니다.
IntelliJ 사진 설명(Fork부터 PR)
1. 작업을 위한 저장소에서
2. 나의 repo로 깃 fork 하기
3. 인텔리제이에 github 로그인 후 fork한 repo 가져오기
4. 주의사항 : 자신의 repo로 fork된 것을 가져와야 함(Directory에서 자신이 원하는 곳에 clone)
5. commit하기
6. push하기
7. Pull Request 만들어서 main repo에 쏘기
아래와 같은 상태가 되면 성공입니다.
VSCode 사진 설명(Fork부터 PR)
1. 작업을 위한 저장소에서
2. 나의 repo로 깃 fork 하기
3. VSCode에 fork한 repo 가져오기
4. 주의사항 : 자신의 repo로 fork된 것을 가져와야 함(Directory에서 자신이 원하는 곳에 clone)
5. commit하기
6. push하기
위의 방식을 고집하지 않으셔도 되며, 자신에게 맞는 방식으로 요구사항을 충족시켜주시면 됩니다!
끝으로 IDE가 git을 편하게 관리해주기 때문에 평소엔 사용하면 되지만, git에 대한 이해가 부족하다면 응용하기 어렵거나 문제에 대응하기 어렵습니다.
아래에는 터미널에서 동작시키는 어려 명령어를 간단하게 정리해두었으니 직접 해보시면서 git을 동작시켜보면 이해하기 더 쉬우실 것 같아요
터미널에서 Git 관리하기
1. 상태 확인 (status)
- 기능: 현재 레포지토리 상태를 확인. 변경 사항, 추적 중인 파일, 추가되지 않은 파일 등을 보여줌.
git status
- 예시 출력:
On branch master No commits yet Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: index.html Untracked files: (use "git add <file>..." to include in what will be committed) hello.html
2. 파일 추가 (add)
- 기능: 파일을 Working Directory에서 Staging Area로 이동시킴.
git add [파일 경로]
- 예시:
git add index.html # index.html 파일만 추가 git add . # 모든 변경 사항 추가 git add -i # 인터랙티브 모드로 선택적 추가
3. 파일 삭제 (remove)
- 기능: Staging Area에 추가된 파일을 다시 Working Directory로 되돌림.
git rm --cached [파일 경로]
- 예시:
git rm --cached index.html # index.html을 Staging에서 제외 git rm -r --cached . # 모든 파일을 Staging에서 제외
4. 커밋 (commit)
- 기능: Staging Area에 있는 변경 사항을 레포지토리에 기록.
git commit -m "커밋 메시지"
- 예시:
git commit -m "Added new feature" # 간단한 커밋 메시지 작성 git commit # Vim 에디터를 열어 커밋 메시지 작성 git commit -a -m "Modified files" # 수정된 파일을 바로 커밋
5. 커밋 이력 확인 (log)
- 기능: 커밋 이력을 확인.
git log
- 예시:
git log --oneline --decorate --graph --all # 한 줄 요약 + 브랜치 이력 표시 git log -- [파일 경로] # 특정 파일의 커밋 이력 조회
6. 변경 내용 비교 (diff)
- 기능: 변경된 파일의 차이점 비교.
git diff
- 예시:
git diff [Commit ID] # 특정 커밋과 비교 git diff [Commit ID] -- [파일 경로] # 특정 파일과 비교
7. 브랜치 관리 (branch)
- 기능: 브랜치 목록 확인, 생성, 삭제 등.
git branch
- 예시:
git branch [브랜치명] # 브랜치 생성 git branch -d [브랜치명] # 브랜치 삭제 git branch -m [기존 브랜치명] [새 브랜치명] # 브랜치 이름 변경 git checkout -b [브랜치명] # 브랜치 생성과 동시에 이동
8. 브랜치 이동 및 체크아웃 (checkout)
- 기능: 다른 브랜치로 이동하거나 특정 커밋으로 이동.
git checkout [브랜치명]
- 예시:
git checkout [브랜치명] # 브랜치 이동 git checkout [Commit ID] # 특정 커밋으로 이동 git checkout [Commit ID] -- [파일 경로] # 특정 파일을 커밋 상태로 되돌림
9. 브랜치 병합 (merge)
- 기능: 현재 브랜치에 다른 브랜치를 병합.
⚠️ 충돌 (Conflict): 병합 시 충돌 발생 시 충돌 부분을 수동으로 수정 후 다시 커밋 필요.git merge [브랜치명]
- 예시:
git checkout master # master 브랜치로 이동```
git merge develop # develop 브랜치를 master에 병합
10. 원격 저장소 추가 및 확인 (remote)
- 기능: 로컬 저장소에 원격 저장소를 연동.
git remote add [별칭] [원격 저장소 URL]
- 예시:
git remote add origin https://github.com/user/repo.git git remote -v # 원격 저장소 조회
11. 원격 저장소에서 가져오기 (fetch & pull)
- 기능: 원격 저장소의 변경 사항을 가져옴.
fetch
는 다운로드만,pull
은 다운로드 후 병합까지.git fetch [별칭] [브랜치명] git pull [별칭] [브랜치명]
- 예시:
git fetch origin git pull origin master
12. 원격 저장소로 푸시 (push)
- 기능: 로컬 커밋을 원격 저장소로 업로드.
git push [별칭] [브랜치명]
- 예시:
git push origin master # master 브랜치를 원격 저장소로 푸시
13. 클론 (clone)
- 기능: 원격 저장소를 로컬에 복제.
git clone [원격 저장소 URL]
- 예시:
git clone https://github.com/user/repo.git