Memo

Git 기초

d-_-s 2023. 3. 2. 17:16

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 확인하기