-
Git이란?
버전 관리 시스템 중 하나이다. 소프트웨어를 개발하는 기업의 핵심 자산인 소스코드를 효과적으로 관리할 수 있게 해주는 무료 공개 소프트웨어이다.
특징
- 분산형 관리 시스템이다.
- 병렬 개발이 가능하다.
- 브랜치를 통해 개발한 뒤, 본 프로그램에 합치는 방식으로 개발을 진행할 수 있다.
- 분산 버전관리 시스템이기 때문에 인터넷이 연결되지 않은 곳에서도 개발을 진행할 수 있으며, 중앙 저장소가 날아가도 복원할 수 있다.
- 체계적인 개발이 가능하다.
GitHub란?
협업하고 있는 코드를 저장할 서버가 필요하다. 버전 관리 시스템을 지원하는 웹호스팅 서비스의 기능으로, push, pull request 같은 이벤트에 반응하여 자동으로 작업을 실행할 수 있다.
용어
- Repository : 저장소를 의미하며, 히스토리, 태그, 소스의 브랜치 혹은 브랜치에 따라 버전을 저장한다. 저장소를 통해
작업자가 변경한 모든 히스토리를 확인할 수 있다.
- Working Tree : 저장소를 어느 한 시점을 바라보는 작업자의 현재 시점이다.
- Staging Area : 저장소에 커밋하기 전에 커밋을 준비하는 위치이다.
- Commit : 현재 변경된 작업 상태를 점검에 대한 점검을 마치면 확정하고 저장소에 저장하는 작업이다.
- Head : 현재 작업 중인 branch이다.
- Branch : 가지 또는 분기점을 의미하며, 작업을 할 때에 현재 상태를 복사하여 branch에서 작업을 한 후에 완전하다 싶을
때 merger를 하여 작업을 한다.
- Merge : 다른 branch의 내용을 현재 branch로 가져와 합치는 작업을 의미한다.
Git 기초 설정
로컬에서 기본값으로 사용할 git 사용자 이름과 이메일 설정
$ git config --global user.name "Your Name" $ git config --global user.email "you@example.com"
Git 활용
Git 저장소 초기화
일반적으로 프로젝트 단위로 git 저장소를 만들어 사용하며, 소스 코드 파일을 git을 관리하기 위해서는 git을 초기화해야 한다.
초기화 방법 : 저장소로 사용하고자 하는 디렉터리로 이동 후 인자 없이 git init을 실행한다.
$git init
Git 저장소 상태 및 로그 확인하기
$ git status $ git log
처음 Commit 하기
처음 커밋은 루트 커밋으로 특별한 취급을 받으며 rebase 하는 방법이나 git add를 되돌리는 법도 다르다. 따라서 git 저장소에 필수적으로 사용하는 /gitignore 빈 파일을 처음 커밋해 주는 경우가 일반적이다.
touch : 뒤에 파일이름을 입력하면 그 파일의 타임스탬프를 현재시간으로 업데이트이트 한다.
만약 입력한 파일이 없을 때는 새로운 빈 파일을 생성한다.
$ touch .gitignore
원격 저장소에 push 하기
GitHub에 새로운 repository를 만든다.
Git을 초기화시킨다.
git init
GitHub repo와 연결해 준다.
git remote add origin https://github.com/username/reponame.git
내 컴퓨터 폴더의 변경사항을 확인한다.
git status
원격 저장소에 추가해 준다.
git add .
LF will be replaced by CRLF in main.py 오류 발생
아래의 명령어로 해결 가능
window PC의 경우
git config --global core.autocrlf true
Mac & Linux PC의 경우
git config --global core.autocrlf input
이후 다시 git add. 를 해준다.
Commit 한다.
git commit -m "message"
message에 내가 수정한 내용을 적어주면 도움이 된다.
원격 저장소의 변경사항을 확인한다.
이 기능을 통해 내가 commit 한 히스토리를 확인할 수 있다.
git log
Push 한다.
push를 통하여 GitHub에 파일을 올린다.
git push origin master
* 주의 사항
- push는 커밋을 하면서 계록 기록해 두다가 진짜 최종 결과물일 때 하는 작업이다.
- commit까지만 했으면 되돌리기와 수정이 자유로운데, master에 push를 하는 순간 되돌릴 수 없다.
- 실제 현업에서 push는 정말 조심히 사용해야 하는 커맨드이다.
GitHub 확인하기
'Memo' 카테고리의 다른 글
전자정부 SW개발, 운영자를 위한 JAVA 시큐어코딩 가이드 (0) 2023.02.28 스프링 MVC 프로젝트 구조 (0) 2023.02.14