git objects
Blob: 변화량
Tree : Blob+subtree의 메타데이터
commit : 커밋 순간의 스냅샷 - 사진찍는 것과 같음, 소스코드의 특정 부분을 스냅샷 찍는다.
staging area: 앞접시에 담기 => localrepo에 커밋 가능, 원하는 부분만 커밋 가능
wifi가 안되어도 commit을 local repo에 쌓아놨다가 인터넷 연결되면 git push
작업한 것을 staging area에 담아서 localrepo에 담기, push해서 remote repo에 담기
git vs github
git : 버전 컨트롤 도구
github: 버전 원격 저장소
copilot 서비스 좋음..데이터 셋 생각해보면 ..?
cloud remote repository services
bitbucket,github 주로 많이 쓴다.
gitlab: 사설 서버 구축 가능
Git 명령어
git clone 링크
cd 폴더
touch .gitignore
git add .gitignore(파일) //git add . 별로 안좋다. 앞접시에 다 넣어버림,,,
git commit //git commit -m은 별로 안좋음(메세지 적기 어려움)
// git status로 상태 확인 가능
git push origin main //브랜치에 push
gitignore.io
https://www.toptal.com/developers/gitignore/
기술 스택을 적으면 무시해야 할 파일을 보여준다.
gitignore은 프로젝트의 첫 시작점이다.
Conventional Commits
+ refactoring
첫문자를 대문자로
prefix 꼭 달기
commitd의 단위는 작업단위이다. method 추가
예시
README.md 형식
# Project Name
Abstract your project in few lines. //한줄 설명
see [project sample page](project link)
## Documentation //문서화
### Installation //설치 방법
To install,
`$ pip install sesame`
and run `$ python open_sesame.py`
### Supported Python versions
`>=3.6`
### More Information
- [API docs]()
- [Official website]()
### Contributing
Please see [CONTRIBUTING.md]()
### License
Sesame is Free software, and may be redistributed under the terms of specified in the [LICENSE]() file.
잘 써야 프로젝트 인상이 좋다.
vi 파일 수정하기
# git-practice
이 프로젝트는 git을 연습하기 위한 저장소입니다.
See [Demo](https://www.google.com/)
<a href="https://www.google.com/">Demo</a>
## Documentation
### Installation
```shell
$ git clone {repo url}
$ cd {reponame}
$ pip install -r requirements.txt
```
### How To Start
```shell
docs: Update README.md
$ python main.py
```
## Dependency
- Python==3.10
- django==3.0.0
- requests^0.10.0
### Features
- 행운의 숫자 추출
- 행운의 숫자 저장
- 행운의 숫자 기반 구매
라이센스
GNU 라이센스는 사용시 주의하기,,,
DevOps
개발과 운영을 한번에
test 통과한 코드만 merge됨
TravisCI(오픈소스), CircleCI(돈은 있는데 리소스 덜하게), Jenkins
Workflow
event에 의해 트리거되는 자동화된 프로세스, 최상위 개념, YAML로 작성
Event
어떤 조건을 만족했을때 실행, Workflow를 실행하는 규칙
ex ) push, pull request, Cron, webhook
Job
동작 하는 단위, Step들
순차, 병렬 모두 가능
Step
Task들의 집합, 커맨드를 실행하거나 action 실행
Runner
큰 플랫폼
instance
name: Hello
on:
push:
branches:
- main
jobs: hello:
runs-on: ubuntu-latest
steps:
- name: Say Hello
run: echo "hello, world!"
main 브랜치에 hello를 하면 say hello를 함
규칙 정하기
태그가 일어날때 cron
branch
독립적으로 코드를 변경할 수 있도록 도와주는 모델
git branch 브랜치 이름 //브랜치 생성
git branch //현재 브랜치 확인
git switch 이동하고싶은 브랜치
git merge: 당긴다. (fb의 작업 내용을 main으로 가져오려면 main브랜치에서 git merge fb 하기)
git branch -D fb //브랜치 삭제하기(더이상 안씀)
checkout = switch+restore로 나눔
branch
브랜치 이름
git merge: 당긴다. (fb의 작업 내용을 main으로 가져오려면 main브랜치에서 git merge fb 하기)
git flow
git - flow cheatsheet : git flow 브랜치 형식으로 편하게 사용할 수 있게 한다.
https://danielkummer.github.io/git-flow-cheatsheet/index.ko_KR.html
'카테캠' 카테고리의 다른 글
카테캠 강의 - GIT 협업 (0) | 2023.05.02 |
---|