Git

[Git] Git 초기설정, 인텔리제이에 깃을 연동하고 로컬 저장소에서 원격 저장소에 커밋하기

Ofglen 2023. 7. 14. 10:49

Git과 GitHub

  • Git: 소스코드 버전 관리 시스템. 버전(내가 원하는 시점)으로 이동할 수 있게 하는 툴이다.
  • GitHub: Git으로 관리하는 프로젝트를 올려둘 수 있는 클라우드 서버 서비스를 제공하는 Git 호스팅 사이트이다.
  • 오픈소스: GitHub에 소스코드를 올려두면 시공간의 제약 없이 협업할 수 있다. 누구든지 기여할 수 있는 공개저장소 프로젝트를 오픈소스라고 한다.

 

팀 개발을 위한 Git, GitHub 시작하

 

클라우드 서비스란?

클라우드 서비스는 내 하드디스크가 아닌 인터넷을 통해 이용할 수 있는 서비스를 말한다. 어디서나 내가 올린 파일에 접근할 수 있다. 클라우드 컴퓨팅은 데이터 처리 또는 데이터 저장을 내 컴퓨터가 아닌 외부의 다른 컴퓨터로 하는 것을 의미한다.

 

초기 설정

  1. github에 가입한다
  2. git 설치 후 git bash에서 $(명령어 입력을 기다리는 커서) 옆에 git을 입력하여 git이 설치되었는지 확인한다.
git
git init # git 저장소 초기화
git config 
git add README.txt

git status # 워킹 트리 상태 확인

# -m: message의 약자
git commit -m "[커밋 메세지]"

# 최신 커밋 순으로 모든 커밋을 확인한다
git log

# 원하는 버전으로 돌아가기
git checkout [커밋 아이디 앞 7자리]

# 최신 버전으로 돌아가기
git checkout -

 

  1. Github에서 Repositories > New Repository(원격저장소)를 생성한다.
  2. GitBash를 이용해서 로컬저장소를 생성하고 GitHub 원격저장소에 커밋하기

 

 

로컬 저장소 만들기

컴퓨터 안에 폴더 생성 > 마우스 오른쪽 버튼을 클릭하고 [Git Bash Here]을 클릭한다. > git init(Git 초기화 명령어)을 입력한다. ‘Inititalized empty Git repository’라는 텍스트가 나오면 성공이다. 이 명령어를 실행하고 나면 폴더에는 [. git]라는 폴더가 자동으로 생성된다. 이 폴더가 로컬저장소이다.

 

 

 

인텔리제이에서 git 명령어 사용하기

git init
git clone {github 프로젝트 주소}
# .git(로컬 저장소) 생성

git remote add origin {프로젝트 주소}

# 변경한 내용 github에 반영하기
git push origin main

 

 

로컬 저장소에서 원격저장소에 커밋 하기

# Git에서 pull하면 메인에서 로컬 레포지토리가 깃 레퍼지토리에 덮어지기 때문에 임시저장소 temp에 내 파일들을 임시 저장한다.
$ git stash

# 다른 사람이 깃 레포지토리에 업데이트한 파일이 있을 때, 내 로컬 레포지토리랑 깃 레포지토리를 동일한 상태로 만들기 위해 pull 한다.
# origin이 가리키는 원격 저장소(깃 레퍼지토리) 주소에서 모든 파일을 불러온다.
git pull origin main

# modifier error 뜨면 다른 사람(A)과 내가 작성한 변경사항을 표시한다
git stash pop

# 푸쉬 전에 다른 사람이 변경할 수 있기 때문에 (main일 때만) status로 git에 올린 project 상태를 확인한다
git status

# 내 디렉토리에 업데이트 된 파일들을 모두 스테이징 영역에 추가한다
git add . 

# Git 워킹트리의 상태를 보는 명령으로, 워킹트리가 아닌 폴더에서 실행하면 오류가 발생한다
git status

# '' 안에 커밋에 대한 설명을 50자 이내의 명사와 동사로 간단명료하게 메시지를 작성한다
git commit -m “...”

# 원격 저장소에 로컬 저장소 파일을 업로드한다
# 내 로컬 레포지토리에서 코드 변경된 것만 업로드(백업)한다
# git push origin main 으로 push하는게 나중에 더 도움되니까 브랜치명을 다 작성 한다
git push origin main

 

 

push 시 [!rejdcted] 에러가 뜬다면?

pull 안 받고 push 해서 뜨는 에러다. 지금 로컬 레포가 최신버전이라면 (즉, git이 내 로컬버전으로 덮어써져도 된다면) git push origin +main으로 강제 푸시해서 해결한다!

 

 

GitHub 원격저장소의 커밋을 로컬 저장소에 내려받기

git clone {레포지토리 주소} . # 한 칸 띄고 마침표

# 숨겨진 디렉토리 및 파일 정렬
ls -al # .git 파일이 생성되었는지 확인

 

 

Git 명령어 정리

Git Bash는 CLI 방식으로 Git을 사용할 수 있는 환경이다.

  • log: 지금까지 만든 커밋 모두 확인하는 명령어
  • checkout: 원하는 버전(지점)으로 파일 되돌리는 명령어
  • 로컬 저장소: Git으로 버전 관리하는 내 컴퓨터 안의 폴더
  • 원격 저장소(레포지토리): GitHub에서 협업하는 폴더(공간)
  • Push: 로컬저장소의 커밋을 원격저장소에 올리는 것
  • Pull: 원격저장소의 커밋을 로컬 저장소에 내려받는 것
  • add: 하나의 버전을 만들기 위해 변경사항 선택
  • commit : 변경사항을 하나로 묶어 버전으로 만든 것 → 버전 관리를 통해 생성된 파일