6/19 실습 내용 풀이, Git

심지태
∙∙조회 2

Git

Git은 코드와 문서가 언제 왜 바뀌었는지 기록해 프로젝트를 되돌리고 설명할 수 있게 합니다. Git은 단순 백업 도구가 아니라 프로젝트의 작업 이력을 관리하는 도구입니다. 게임 프로젝트에서는 코드, README, 설정 파일, 씬 변경이 함께 움직이므로 커밋 단위를 의미 있게 남기는 습관이 중요합니다. **

Git 설정

  1. GitBash 사용법 깃 인스톨(Recommanded 설정으로 하면 됨) → Git Bash 실행 가능

GitBash에 명령어들 작성하며 필요한 기능들 실행 가능 git —version : 버전 확인 git config —global user.name “본인 이름(ex SJT)” : 글로벌로 설정 git config —global user.email “abc@gmail.com” : 이메일로 동기화 git config —global —list : 설정(Config) 목록 조회, 사용자 이름, 이메일, 에디터 설정 등 Git 환경 설정을 모두 확인

mkdir csharp-study : 해당 이름의 폴더 생성 (User 폴더에 생성) cd csharp-study : cd == Change Directory (디렉터리 변경) git init : 해당 경로에 깃 초기화, 해당 폴더에 .git이라는 폴더가 생성된 것을 확인 가능 git branch -M main : 기본 브랜치로 사용할 브랜치 이름을 main으로 변경하는 명령어 (초기 기본 브랜치 이름은 Master라고 되어 있음.) git status : 현재 Git 저장소의 파일의 변경 사항, 스테이징 상태, 현재 브랜치 정보 등을 확인하는 명령어

git ignore 설정 방법 : https://www.toptal.com/developers/gitignore/api/csharp 접속해서 필요한 내용 검색(ex Csharp) → 해당 폴더에 복사해온 내용을 .gitignore에 복사 및 저장 (텍스트 파일로 생성 후 복사, 그리고 확장자명 없애기)

git add .gitignore : 변경내용 스테이징, add 후에 git status를 실행하면 Changes to be committed 라고 나올거임.

git add . : 모든 변경내용 스테이징, add 후에 git status를 실행하면 Changes to be committed 라고 나올거임.

git commit -m “Initial Commit : Setting .gitignore” : 커밋할 때 설명을 함께 적어줌

git log —oneline : 지난 기록 로그 확인 2. Git 핵심 용어 Add (Staging) - Commit할 파일을 준비 영역(Staging Area)에 추가

Commit - 변경 기록 저장 Commit 과정 : 작업 내용들 ⇒ Commit하기 위해서 Staging(Add)을 해줘야함 (Staging은 준비 영역) ⇒ Commit ⇒ 레포지토리에 저장 내용 업데이트

Branch - 작업 흐름 분리, 분기점을 만들어서 메인 코드에 영향을 주지 않고 별도의 작업을 진행할 수 있는 기능

Merge - ****작업 내용 통합, 서로 다른 브랜치에서 작업한 변경 사항을 하나의 브랜치로 합치는 Git의 기능

Status - 현재 변경 상태 확인 3. https://learngitbranching.js.org/?locale=ko 해당 링크에서 깃 브렌칭에 대해서 공부할 수 있음

GitHub

GitHub는 원격 저장소와 협업 흐름을 제공하고 브랜치는 기능 작업을 안전하게 분리합니다.

  • GitHub는 Git 저장소를 온라인에서 공유하고 코드 리뷰, 이슈, Pull Request로 협업하게 해 줍니다.

  • 브랜치 전략은 여러 사람이 동시에 작업할 때 충돌과 혼란을 줄이는 규칙입니다.

    GitHub를 통해 기존 GitBash로 만든 레포지토리를 등록할 수 있고, 직접 새로운 레포지토리를 만들 수도 있다.

    Git LFS : 100mb 이상의 용량이 큰 파일을 효율적으로 다루기 위한 Git의 확장 기능

    일반적으로 에셋들은 .gitignore로 무시하도록 하고 따로 관리한다.

GitHub 핵심 용어

Remote : Github 서버에 있는 원격 저장소

Push : 로컬 변경을 원격 저장소로 업로드

Pull : 원격 변경을 로컬로 가져오기

Pull Request : 변경 내용 검토 및 병합 요청

Commit : 로컬에서 변경 내용을 업로드. 실제 원격 저장소에 업로드하려면 Push까지 진행

Clone : 같은 팀 저장소 복사, 타인의 레포지토리 그 자체를 가져오는 것

Fork : 타인 저장소 복사 후 내 계정에서 작업, 상대방의 레포지토리를 가져와서 새로운 레포지토리를 만드는 것

GitHub와 원격 저장소

구분위치역할
로컬 저장소내 컴퓨터실제 작업
원격 저장소 (GitHub)인터넷 서버백업, 공유, 협업

GitHub에서 브랜치 생성

가운데 상단 버튼 누르면 new Branch 버튼이 생김. 보통 브랜치를 생성할 때에는 “feat_[구현할 기능]” 이렇게 만듦

Preview Pull Request → 브랜치를 Merge 하기 전에 누르는 버튼. 충돌하는 부분이 없는지 확인 후 없는 것을 확인하면 Merge 진행

충돌(Conflict) 해결

  • 같은 파일의 같은 위치를 두 브랜치가 서로 다르게 수정하면 충돌이 발생합니다.

★ 협업 습관

  • push 전에 항상 pull 먼저: 원격의 최신 변경을 받고 나서 올립니다.

  • 브랜치 이름에 목적을 담는다: feature/login, fix/null-error, hotfix/crash

  • PR은 작게 만듭니다: 리뷰하기 쉬운 크기(파일 5개 이하, 변경 100줄 이하)가 이상적입니다.

  • 리뷰 코멘트는 코드 개선을 위한 대화로 받아들입니다. (싸우지 마라)

  • 커밋은 기능이 구현될 때마다 해줍니다. 그리고 설명은 최대한 자세하게 해놓는다

    깃허브 웹사이트 → 레포지토리 → settings → Collaborater로 메일을 통해 팀원을 초대할 수 있다.