본문 바로가기

IT/git

[Git] git을 이용한 소스코드 관리

 

git이란 소스코드를 효과적으로 관리하기 위해 개발된 분산형 버전 관리 시스템이다

git을 이용해 소스코드를 관리하기 위해 다음과 같은 준비가 선행되어야한다.


1. Git 소스 흐름도

Git 흐름도

git은 4가지의 저장소로 구분된다.

  • workspace
    • 현재 작업중인 장소를 의미한다.
  • index(stage)
    • workspace의 수정된 소스를 저장하는 장소(add)
  • local repository
    • 원격 저장소 업로드하기 전 저장소(push)
    • workspace 반영 없이 원격 저장소의 수정사항을 적용할 수 있는 장소 (fetch)
  • remote repository
    • 원격 저장소
    • clone 명령어를 통해 소스를 다운로드 할 수 있다.

2. Git 초기 설정

Global 설정

git config --global user.name "사용자명"
git config --global user.email "메일 주소"

Local 설정

git config user.name "사용자명" 
git config user.email "메일 주소"

local 설정 시, 매번 프로젝트 마다 커밋한 유저를 설정해주어야 하지만, global 설정 시 한번만 해주면 된다.

git 설정 확인

git config --list

global 유저 정보 및 원격 저장소 등 현재 경로의 git repository의 설정 정보를 보여준다.


3. Git Clone

Github에 만들어둔 원격 저장소를 다운받아보겠다.

소스를 다운받기전 git 폴더를 만들고, git bash 실행 후 해당 경로로 이동한다.

아래 git 원격 주소는 예시이며, 직접 원격 저장소를 만들어 테스트해야 한다.

cd D:/dev/git
git clone https://github.com/Bamdule/test.git

위처럼 출력되었다면 workspace 생성에 성공한 것이다.

해당 폴더 안에는 .git 폴더가 있을 것이다. 해당 폴더는 repository에 대한 각종 정보가 저장되어있다. 


4. Git add

workspace에 readme.txt 파일을 생성하고 다음과 같은 명령어를 입력해보자

git status

untracked 상태인 readme.txt 파일

readme.txt 파일은 git에 의해 추적이 안되는 상태이다. 이 상태를 untracked 상태라고 말한다.
git add readme.txt

git status

tracked 상태인 readme.txt 파일

위 명령어를 입력하면 readme.txt파일 tracked 상태로 변경되고, index(stage) 공간으로 변경사항이 저장된다.

git add .

위 명령어 입력 시, 모든 추가/변경사항이 index(stage) 공간으로 이동한다. 


5. Git commit

index(stage) 공간에서 로컬 저장소로 추가/변경된 사항이 이동한다.

git commit --message "커밋 메시지"

커밋 완료 메시지


6. Git Remote

로컬 저장소의 추가/변경 사항을 원격 저장소에 반영하기 위해서는 원격 저장소를 설정에 등록해야한다.

git remote add 원격지명 원격지주소
git remote add origin https://github.com/Bamdule/test.git

git remote -v

원격 저장소 주소 보기

원격지를 잘못입력하여 삭제하고 싶으면 다음 명령어를 입력하면 된다.

git remote remove 원격지명

7. Git push

로컬 저장소의 추가/변경 사항을 원격 저장소에 반영한다.

별다른 브런치를 생성하지 않았다면 자동으로 master 브런치가 생성/적용되어있다.

git push 원격지명 브랜치명
git push origin master

git push 완료 메시지

 

github 원격 저장소에 업로드 된 readme.txt

github repository에서도 확인할 수 있다.


8. Git pull

원격 저장소에 공동 작업자가 새로운 기능을 업로드 했을 때, 자신의 로컬 저장소와 workspace에 반영한다.

임시로 직접 github에서 pull_test.txt 파일을 등록해보자

repository list > create new file > 파일명 및 내용 입력 > commit new file
git pull origin master

pull_test.txt 파일을 다운받은 것을 볼 수 있다.