이 내용의 강좌들
1. git 이란 무엇인가?
2. 설치와 환경설정
3. git 기본명령어
4. branch 다루기
5. github 이용하기
6. 팀원들이 함께 공유하기
요즘 회사 인터뷰 또는 프로젝트 진행시 이런 이야기를 많이 합니다.
- git 써보셨나요?
- 우리회사는 git 으로 소스관리를 합니다.
- github 계정 알려주시면 프로젝트 공유해 드릴께요.
- git 에 올려주시고 주소 알려주세요.
Git 은 버젼관리 시스템중 하나입니다.
개발 소스의 변경사항을 관리하고 협업하는 다른 팀원들과 공유하고 동일화 시키는 시스템입니다.
버젼관리시스템이 필요한 이유
문서를 작성할때 변경사항이 생길때 기존의 내용을 남기기 위해서
백업파일을 남겨놓고 새로운 파일을 추가로 생성하다보면 시간이 흐른뒤 여러개의 파일이 존재하게 됩니다.
index.html
index_backup.html
index_backup2.html
index_backup_20220113.html
실제 사용하지도 않는 파일을 남겨두기도 하고, 여전히 사용자가 접속할수 있는 경로가 존재 하기도 합니다.
형상관리(Version Control Revision Control)
소스의 변화를 끊임없이 관리하는 것을 말한다.
동일한 파일, 동일한 문서를 여러버젼을 관리할수 있으며,
이전버전으로 돌아갈수도 있고, 다시 원래의 버전으로 돌아갈 수 도 있습니다.
파일을 여러개 소유하고 있는 것이 아니라 변경사항을 별도로 기록하고 있는 것입니다.
형상관리 종류
- SVN ( Subversion ) : Client - Server 모델
클라이언트에서 완성된 소스를 서버에 저장해두는 개념.
- Git : 분산모델
각자의 히스토리를 각 클라이언트에서 관리하고 서버는 독립적으로 저장한다.
분산버젼관리시스템
중앙서버가 필요없으며 인터넷이 연결되어 있지 않아도 작업이 가능하며, 중간에 저장소가 날라가버려도 쉽게 복구가 가능하다.
"Git 은 분산버젼관리시스템중 하나입니다."
Git 설치
다운로드 https://git-scm.com/
Git
git-scm.com
설치과정 https://goddaehee.tistory.com/216
[Git (1)] 윈도우 10 Git 설치 하기
[Git (1)] 윈도우 10 Git 설치 하기 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ Window 10 Git 설치 방법 ] 입니다. : ) 1. Git 설치 Git은 패키지를 설치하거나 별도의 인스톨러로 설치할 수 있다. 혹시라도
goddaehee.tistory.com
* 개발자라면 터미널을 이용한 사용법을 알아두는 것은 필수
Git 버젼확인
$ git --version
git version 2.39.3
Git 환경설정
여러가지 환경설정의 내용이 있지만 기초에서는 사용자 설정만 다룹니다.
// 사용자의 이름 설정
$ git config --global user.name "name"
// 사용자의 이메일 설정
$ git config --global user.email "email@email.com"
* 설정한 환경
// 환경 파일을 열어보기 ( 빠져나갈때는 ':q' )
$ git config --global -e
// 환경을 파일을 보여주기 ( 빠져나갈때는 'q' )
$ git config -e
하나 더...
줄바꿈 문자를 windows 에서는 \r\n 로 linux 에서는 \n 으로 처리하기 때문에
협업이나 복사해서 붙여넣을시 서로 다른 줄바꿈으로 인해 소스에 오류가 생길 수 있는 상황을 방지하기 위해
OS 에 따라 설정해준다.
// windows
$ git config --global core.autocrlf true
// mac
$ git config --global core.autocrlf input
Git 사용시작
터미널을 이용하여 프로젝트 폴더로 이동한다.
( vs code 등 에디터에서 프로젝트를 선택하고 터미널을 열면 보통 해당 프로젝트 폴더에 위치한다 )
현재의 프로젝트 ( 디렉토리 ) 를 Git으로 관리하겠다고 선언해준다.
git 초기화
// 처음 생성 명령
$ git init
Initialized empty Git repository in /Users/hyunjuncho/{projectFolder}/.git/
// 이미 git 저장소가 존재할 경우
$ git init
Reinitialized existing Git repository in /Users/hyunjuncho/{projectFolder}/.git/
git 저장소 생성 확인
// windoows
$ dir .git
// mac
$ ls .git
git 저장소 삭제
// windows
> rmdir .git
// mac
$ rm -rf .git
저장소에 담기위해 준비시키는 것 파일 목록을 만드는 것을 스테이징이라 하며,
저장소에 담는 것을 커밋이라고 합니다.
스테이징하기
저장소에 담는 것을 커밋이라고 하고, 저장소에 담기전에 저장소에 담을 목록에 등록하는 것을 스테이징이라고 합니다.
$ git add 파일명
$ git add 경로/파일명
( 해당 파일을 스테이징한다. )
$ git add .
( 폴더의 모든 파일을 스테이징한다. 변경된 파일만 스테이징합니다.)
Git 의 상태보기
$ git status
On branch main
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: teddy.php
스테이징 취소하기
$ git reset HEAD 파일명
// 파일명을 스테이징 취소
$ git reset HEAD
// 파일명 미지정시에는 스테이지 내부의 모든 파일의 스테이징을 취소
$ git reset HEAD 파일명 --soft
//
$ git reset HEAD 파일명 --hard
// 변경사항 까지도 삭제
// 아래는 잘 안쓰는 명령
// git 에 저장된 파일 삭제
$ git rm --cached 파일명
// git 삭제, 파일은 남기기
$ git rm --cached
커밋 Commit
실제 저장소에 변경된 파일을 적용하고 기록으로 저장하는 것을 커밋이라고 합니다.
커밋하기
$ git commit -m "커밋메세지"
# 커밋한 후의 상태를 확인해 본다.
$ git status
# 커밋 메세지란 어떤 내용이 변경되었는지 커밋마다 메세지를 적어두는 것입니다.
# 예를 들어
$ git commit -m "first commit"
$ git commit -m "add promotion"
$ git commit -m "9/10 pakistan meeting "
위와 같이 어떤 변경이 있었는지를 남겨두면
나중에 로그를 확인할때 볼수 있으며,
여러 개발자가 함께 개발할때도 다른 팀원들에게
어떤내용의 변경이 있었는지 공유할 수 있습니다.
GIT 저장 로그보기
$ git log
commit 715e80bac81829edd81787227ef497b67db294f8
Author: mygospel <mygospel7@gmail.com>
Date: Sun Jan 8 18:09:08 2023 +0900
member login complete
commit 1c2fc1e85ebe34087cec5decdbfec1de48d6d344
Author: mygospel <mygospel7@gmail.com>
Date: Sun Jan 8 17:21:45 2023 +0900
member login
commit 8c57570587f95dad6f9ed178ed5e82c7bc4d0f73
Author: mygospel <mygospel7@gmail.com>
Date: Sun Jan 8 08:54:59 2023 +0900
layout created
commit 5bd4fe11b0d5943349606f0a9646b8cb50f5cc27
Author: mygospel <mygospel7@gmail.com>
Date: Sun Jan 8 08:42:12 2023 +0900
first commit
1) 각 커밋을 구분해주는 해쉬코드 ( 715e80bac81829edd817xxxxxx 와 같은 코드 )
2) 작성자
3) 커밋을 한 시간
을 확인할 수 있습니다.
여기까지! 수고하셨습니다.
과제 :
1. 우리가 진행하고 있는 HSS 폴더에 git 을 생성하고, 오늘 부터 매일 날자단위로 또는 업무단위로 git commit 을 하여 저장소에 기록을 남기고, 다음 수업을 하는 날 git log 명령의 결과 화면을 캡쳐하여 박선생님께 메일로 보냅니다.
2. HSS 프로젝트 이외에 개인이 만들어 보고 싶은 서비스를 구상하여 다음시간에 짧게 발표합니다.
3. github.com 에 가입하고 가입한 이메일을 mygospel7@gmail.com 으로 보내줍니다.
VS CODE extesions :: Git Graph
'Hokma Developer School :: Course 1' 카테고리의 다른 글
[Git 기초 사용법] 4. Git을 이용한 협업 / GitHub Pull Request (0) | 2024.09.27 |
---|---|
[Git 기초 사용법] 3. GitHub 이용하기 (0) | 2024.09.27 |
[Git 기초 사용법] 2. Branch (0) | 2024.09.27 |
Hokma Developer School :: Course 1 (2) | 2024.09.11 |
PHP Session (0) | 2024.08.11 |