일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Kubernetes
- Spring
- rnn
- colab
- Python
- API
- Github
- LINUX MASTER
- cloud
- OSS
- ChatGPT
- Spring Boot
- 고등학생 대상
- 코딩도장
- 인터넷의이해
- C언어
- GoogleDrive
- Machine Learning
- ICT멘토링
- Powershell
- Docker
- 크롤링 개발
- Database
- Resnet
- suricata
- VSCode
- 국가과제
- Rocky Linux
- KAKAO
- git
- Today
- Total
코딩두의 포트폴리오
OSS - 04_Git 설치 & 기본 본문
Git 다운로드 후 Git Bash 실행
사용자 이름과 이메일 설정
로컬 저장소 사용을 위한 Git 기본
기본 명령어
로컬 환경에서 Git을 혼자 사용한다는 가정
로컬 저장소에서 사용할 수 있는 Git 핵심 기능
- 로컬 저장소에서 사용할 수 있는 Git 핵심 기능
- 로컬에 저장소 생성
- 저장소에 파일 생성 및 추가
- 추가된 파일의 수정
- 기본(master) 브랜치에 영향을 끼치지 않는 브랜치 생성
- 브랜치 병합
- 충돌 해결
- 저장소 기록 보기
Git으로 관리하는 파일의 4가지 상태
테스크
'Heloo World' 출력 프로그램을 만든 후, 해당 프로그램 수정할 때 기존 코드에 영향이 가지 않게 작업하기
저장소 생성은 최초에 한 번만 수행
이후의 기본 작업 과정
저장소 사용에 필요한 Git 기본 명령어
안정화된 프로젝트에 기능을 추가하거나 수정해야 할 때 brach 사용
저장소 사용을 위한 branch 명령어
원래 브랜치의 파일이나 작업 흐름에 영향을 주지 않으면서 새로운 작업 흐름 생성 가능
체크아웃(Checkout)
현재 작업 공간으로 해당 브랜치를 가져옴
브랜치 이동을 통해 변경된 작업 흐름
브랜치를 이용한 전체 작업 흐름
C0, C1, ...은 각각 한 번의 커밋을 의미
커밋(Commit) - 변경 내용을 수시로 저장
- 변경 내용을 실제로 확정하는 명령
- 프로젝트에서 의미가 있는 최소한의 단위 - 함수/기능 단위로, 정해진 시간마다, ...
마지막에 master 브랜치에 hotfix 브랜치를 병합했으므로, 최종적으로 master 브랜치는 hotfix에서의 수정내역도 전부 갖음
ex) Git에서 브랜치들이 어떻게 이용되는지?
GitHub의 브랜치 그래프 예시
Git의 브랜치 기능을 이용하면 기존 프로젝트를 쉽게 수정하거나 새로운 기능을 추가할 수 있음
Git bash 실습
실습 순서 - Command Line이나 IDE 종류는 상관없이 순서는 동일
- 저장소 생성
- 저장소에 Hello World를 출력하는 프로그램 작성 및 추가
- 커밋
- hotfix 브랜치 생성 및 이동
- 프로그램 수정
- 커밋
- master 브랜치에 병합
- master 브랜치에 변경점 하나 추가
- 커밋
- hotfix 브랜치에 변경점 하나 추가
- 커밋
- master와 hotfix 브랜치 사이에 영향이 없음을 확인
- 불필요한 프로젝트 파일을 관리 대상에서 제외하기
- 충돌 해결하기
- 기록보기
[시작] -> [Git] -> [Git bash] 실행
유닉스 쉘(shell)을 실행한 것
필수 UNIX 명령어
Python 프로그램 파일로 실습
https://www.python.org/downloads/
내 컴퓨터 -> 속성 -> 고급시스템설정 에서 python.exe 파일의 위치를 PATH 환경변수에 설정
Git init: 저장소 생성 (tutorial3을 생성하고 작업 진행할 예정)
1. Git Bash의 기본 경로(C:\ 사용자\ 사용자이름) 밑에 git_tutorial 디렉토리 생성
2. 새로 만든 디렉토리로 이동한 뒤, Git 저장소 초기화
Git add와 Git commit: 첫 번째 커밋
"Hello World"를 출력하는 프로그램을 작성해서 프로젝트 디렉토리(master 브랜치)에 넣어 둠
Vim 텍스트 편집기
- Linux나 Unix에서 사용
- Vim에서 사용하는 주요 명령어
편집기 실행
편집기에서 Python 코드 입력
- i를 누르고 입력
- 저장과 종료를 동시에 하기 위해 [ESC] 키 누르고, :wq 입력
명령 프롬프트에서 파일 내용을 확인하고, 실행하기
커밋하기 전, 저장소 상태 확인하기
아직 Git에서 추적하지 않는 hello.py 파일이 저장소에 있고,
이 파일을 추적하려면 git add 명령어 사용할 것을 알려줌
파일 기록을 추적하도록 추가하기
커밋해야 할 수정 내역이 있다고 알려줌
커밋하기
- 별다른 설정이 없다면 기본 커밋 메시지 편집기로 vim 사용
- i 키를 누르고, 첫 줄에 'create "hello world" program' 이라는 커밋 메시지 입력 -> 커밋 설명할 수 있는 다른 메시지도 가능
- [esc] 키 누르고, :wq 입력하고 [enter] 키 누름
커밋이 완료되었고, 어떤 파일이 어떻게 바뀌었는지 간략하게 알려줌
Git branch와 Git checkout
새로운 브랜치 생성과 이동
현재 어떤 브랜치가 있는지 확인하기
새로운 브랜치 생성하기
Hotfix 브랜치에서 작업 시작하기
지금부터의 작업은 오직 hotfix 브랜치에만 영향을 미침
<참고> 브랜치를 만들면서 바로 체크아웃하는 명령어 -> git checkout -b 브랜치이름
이전 hello.py 파일 수정하기
수정 내용 확인 후, 실행하기
Git commit -a: 두 번째 커밋
현재 상태 확인
변경된 내역이 커밋될 준비가 되지 않았음
두 번째 커밋하기
git add 파일이름 실행 후, git commit 실행 / 또는, git commit -a 실행
브랜치별 프로그램 소스코드 확인하기
<참고> Vim 사용하지 않고 커밋 메시지 넣기
Git에서 커밋할 때는 꼭 커밋 메시지를 남겨야 함. 남기지 않으면 커밋을 할 수 없음. 그런데 간단한 커밋 메시지를 남기려고 항상 vim을 사용해야 한다면 번거로울 수 있음. 이런 상황일 때는 -m 옵션을 사용할 수 있음
git commit -m "커밋메시지"
Git merge (병합)
Git merge: master 브랜치와 병합
Master 브랜치 확인
Master 브랜치에 hotfix 브랜치를 가져와 병합한 후, 결과 표시
Hello.py 파일에 1행 추가, 1행 삭제
제대로 병합되었는지 확인
각 브랜치의 독립성 확인
Master 브랜치에 있는 hello.py 수정하고 커밋하기
Hotfix 브랜치에 있는 hello.py 수정하고 커밋하기
각 브랜치별로 소스코드 확인하기
브랜치별로 hello.py의 내용을 독립적으로 수정할 수 있음
충돌 해결
두 개의 브랜치에서 동시에 같은 파일의 같은 곳을 수정하고, 병합하면 생기는 문제
필자는 이미 위에서 충돌을 해결한 상태라서 오류 명령이 발생 X
Git은 충돌이 발생한 부분이 어떤 의미를 가지고 있는지 모르므로, 사용자가 수정해야 하는 부분
두 브랜치 중 하나 선택 or 두 내용을 수작업으로 수정하여 병합
-> 문제가 발생한 부분은 추후에 수정
git log: 기록 보기
커밋 내역을 확인하는 기능
작업이 오래 지속된 경우, 여러 사람이 저장소를 사용하는 경우 등
git log --graph 명령 실행
커밋한 사용자, 커밋 시각, 커밋 메시지 등 확인
git log --stat
각 커밋에서 수정된 파일의 통계 정보
다른 커밋으로 이동하기
git log
지금까지 만든 커밋 확인
git checkout xxxxx
이동하고 싶은 커밋의 앞자리 커밋 아이디 입력
git checkout -
최신 커밋으로 이동
실제 프로젝트에서 발생하는 상황들
추적할 필요없는 파일 무시하기
입출력 데이터, 각종 로그 파일, IDE 프로젝트 자체 관리 파일
.gitignore 파일 이용하여 해결
병합 시 발생하는 충돌 해결하기
각 브랜치가 하나의 파일을 동시에 수정하는 경우
커밋 내역 살펴보기
어떤 작업이 진행되었고, 어떤 브랜치가 병합되었는지 등
.gitignore: 불필요한 파일 및 폴더 무시
.gitignore 파일 생성
.gitignore 파일
파일 목록과 파일을 구분할 수 있는 패턴의 모음
라인 하나가 패턴 하나에 해당
추가적인 내용은 https://git-scm.com/docs/gitignore 에서 확인!
Gitignore.io
.gitignore 파일을 운영체제나 IDE에 맞춰 자동 생성해주는 웹 앱
현재 사용 중인 운영체제, IDE, 프로그래밍언어 이름 입력하면 조건에 맞는 .gitignore 파일 자동 생성
자동 생성된 파일을 복사한 후, touch 로 생성한 빈 .gitignore 파일에 붙여 넣기함
1. vim 실행
2, i 키를 눌러 insert 모드로 들어감
3. vim에 붙여넣기
.gitignore 파일을 저장소에 커밋
지금 이 시각부터는 파이썬 프로젝트 작업 시 불필요한 파일이 Git 저장소에 추가되지 않음
'Open Source Software' 카테고리의 다른 글
OSS - 07_Git 고급 (0) | 2024.04.21 |
---|---|
OSS - 05_원격 저장소와 GitHub & Git (0) | 2024.04.14 |
OSS - 03_버전관리시스템과 Git (0) | 2024.04.07 |
OSS - 02_OSS 활용 (0) | 2024.04.02 |
OSS - 01_공개SW 라이선스 (0) | 2024.03.31 |