Git,GitHub

[Git, GiHub] Git 알아보기

코딩하는둥이 2025. 1. 7. 23:10

깃이란?

형상관리 도구 중에 하나이다. = 버전 관리 시스템

 

Git을 사용하는 이유

 : 프로젝트 시 어떤 기능을 빼고 더하고 고치고 수정하는 과정은 필수여서 서로 다른 기능의 버전을 유지해야 한다.

 

1) 코드관리 측면

    - 변경 이력확인

    - 이전 이력 되돌리기

    - 다른 기능의 버전 코드 유지

    - 현재 최종이 어느 시점인지 표현 가능

2) 협업의 측면

   - 각 기능 별로 분업 후 하나의 코드를 합칠 수 있음

    - 같은 부분을 수정해 문제가 생기는 경우에 안내

    - 협업으로 인한 실수 예방

    - 팀원 가의 커뮤니케이션 지원

 

Git 기반의 서비스

 1) GitHub : 

 

GitHub · Build and ship software on a single, collaborative platform

Join the world's most widely adopted, AI-powered developer platform where millions of developers, businesses, and the largest open source community build software that advances humanity.

github.com

 

 2) Bitbucket : Atlassian의 제품들과 연계

 

Bitbucket | Git solution for teams using Jira

Bitbucket Cloud is a Git-based code and CI/CD tool optimized for teams using Jira.

bitbucket.org

 

 3) GitLab : 설치형 Git

 

Try GitLab Ultimate for free

Enjoy GitLab Ultimate 30 day free trial and experience the full software development lifecycle & DevOps tool with an extensive range of innovative features.

about.gitlab.com

 

SourceTree란?

Git을 더 쉽게 활용하게 하기 위해 GUI 툴

 

Sourcetree | Free Git GUI for Mac and Windows

A Git GUI that offers a visual representation of your repositories. Sourcetree is a free Git client for Windows and Mac.

www.sourcetreeapp.com

 

 

사용자 설정 및 세팅

git 사용자 설정

git config --global user.email "이메일 주소"

 git config --global user.name"이름"

 

설정 확인

 git config --list

 

gGithub 계정에 ssh key 등록

 1) ssh key 만들기

 

Git - SSH 공개키 만들기

많은 Git 서버들은 SSH 공개키로 인증한다. 공개키를 사용하려면 일단 공개키를 만들어야 한다. 공개키를 만드는 방법은 모든 운영체제가 비슷하다. 먼저 키가 있는지부터 확인하자. 사용자의 SSH

git-scm.com

2) Github 접속 후 오른쪽 상단 프로필 Setting-> SSH and Gpg Keys

3) New SSH Key 클릭 해 Title과 복사한 Key 입력후 Add SSH Key 클릭

 

깃 초기화 및 삭제

Git 초기화

: 명령어 git init

 - 초기화 할 대상 폴더에서 명령어 입력

 - Git 초기화 시 폴더 안에 숨기 폴더로 .git 폴더 생성

 - 해당 폴더 안에 들어가는 파일들 깃으로 관리하겠다는 선언

 

Git 삭제

 : 명령어 rm -rf.git

 - 단순히 .git 폴더를 삭제

 

.gitgnore란?

 : 사용자가 git에 등록되지 않길 원하는 파일 또는 폴더들의  파일 또는 폴더들의 목록을 저장

작성법

 - #은 주석 역할

 - 폴더 : /폴더명 (예:  /docs)

 - 파일 파일명.확장자(예: test.txt)

 - 폴더 안 파일 : /폴더명/파일명.확장자 (예: /doxs/test.txt)

 - 폴더 안 특정 확장자 파일 전부 (예: /docs/.*text)

 -  폴더 하위 모든 특정 확장자 파일 전부(예: /docs/**/*.txt)

 

.gitinore 작성에 유용한 사이트

 

gitignore.io

Create useful .gitignore files for your project

www.toptal.com

 

 

기본 동작 원리

Working Directory : 작업하는 파일이 있는 디렉토리

Staging Area: Git에 등록할 파일들이 올라가는 영역

Local Repository: 로컬 Git 프로젝트의 메타데이터롸 데이터 정보가 정보가 저장되는 영역

Remote Repository: Gitbub 등의 서비스를 통한 상의 저장

 

 

 

기본용어

origin: 원격에 있는 코드

head: 지금 작업중인 로컬 블랜치

add: Working Directory에서 Straging Area로 등록

commit: Staging Area에 등록된 파일을 Local Storage로 등록

Commit MessageL: commit 시 함께 작성해 저장하는 메세지

push: Local Storage에서 변경된 파일들을 Remote Repository 등록

fetch: Remote Repositort의 변경 사항을 Working Directory로 전달

Brabch: 독립적으로 어떤 작업을 따로 진행하기 윈한 가지

checkout: 사용할 다른 브랜치 지정

 

 

저장소 : Local Repository

 : 파일이나 폴더를 저장하는 곳

 - 깃 저장소는 파일 변경 이력 별로 구분되어 저장

 - 내 pc에 파일이 저장되는 개인 전용 저장 공간

 

생성 방법

    1) 원하는 폴더 생성

    2) 해당 폴더에서 git init 명령어 입력

    3) .git 폴더 생성 확인

 

 * 원격 저장소(Remote Repository)에서 복사해 Local Repository를 생성 가능

 

Remote Repository

 : 파일이 전용 서버에서 관리되며 여러 사람이 함께 공유

    GitHub를 통해 생성