Please enable JavaScript.
Coggle requires JavaScript to display documents.
Git-from MLOPS curriculumn - Coggle Diagram
Git-from MLOPS curriculumn
충환님의 테크세미나 1
써야하는 이유
commit에 대한 간단한 개념
수정 불가
remote로 push시..
cli 명령어 예시
basic
git restore --staged <path>
git reset --soft
git reset --hard
git reset --mixed
옵션을 안 붙일시, default로 적용되는 것은 --soft
이 경우, commit hash와 현재 사이의 모든 commit을 되돌리고 변형상태의 코드는 staged 상태로 보존(즉, git add된 상태)
--hard는 변형상태의 코드를 보존하지 않고 working directory의 코드를 모두 이전상태로
--mixed
--soft 옵션과 유사하나 unstaged 상태로 보존
git commit -m
git add
git revert
해당 commit만 제거 후, 변경사항이 제거 된 파일들이 Staging Area로
branch
git checkout
git branch
git checkout -b
git push orgin <branch>
git pull origin <branch>
git push origin --set-upstream <branch>
git merge <branch>
서로 다른 branch 존재 시 공존하는 방식(merge commit)이 표준
git stash
임시 저장
git stash pop
임시 저장, 다시 꺼내기
Pull Request
git hub사이트 내 pull request탭
new pull request
내용 작성
approval 받고
merge
1 more item...
Tag & Release
큰 변경시 다는 설명
3자리 숫자를 Tag로 쓰는 것이 일반적
git tag -a <tag> -m "<message>"
git push origin <tag>
작성한 tag를 git hub 사이트 내에서 확인 후 Release를 작성 가능
Release는 Tag에 다는 설명
현 버전의 커밋에만 작성
roll back 등으로 가능하나 권장하지 않음
Workflow
태스크 분배
conflict방지 위해, 같은 파일의 같은 부분 수정하는 태스크 방지
태스크 시작 전, 공용 branch를 pull
태스트 수행용 branch 생성
열심히 코딩 후, 적당한 시점(변경내용이 한 줄 이내로 설명 가능)에 커밋
remote에도 push하여 진행상황을 공유하길 권장
태스크 종료 시, 공용 branch로 pr
코드리뷰와 피드백, 이 후 수정 후 commit, push 반복
approve시, 공용branch에 merge
모두가 공용 branch를 pull
충환님의 테크세미나 2
git의 merge 판단 기준
공통 commit
git merge 종류
merge commit
history가 다 표현되나, 공용 branch가 깔끔하지 못 하다
squash merge
변환사항을 모아서 반영 후 새로운 branch로 진행
공용 branch가 깨끗해지고, pr단위로 tracking가능
merge traffic이 확인이 안됨.
한번 쓰고 버리는 branch에 적절
back merge
다른 branch(예: hot fix)에 push할 (공용)branch를 먼저 pull하여 변경사항 작성 후 다시 push할 (공용)branch에 merge-commit
rebase
반영해야 할 commit을 새로운 commit으로 공용 branch에 덧붙이는 것.
fast-forwarding
두 branch사이, 한 쪽에서 아무런 commit이 없어서 충돌이 없으므로 자동으로 덧 붙이는 방식
얘기치 않은 상황에 대한 tip
잘 못된 commit시 (push를 안 했을 경우 사용)
git reset <option> <destination>
option
--soft
--hard
destination
ref
Head: 가장 최신
^ 추가시 하나 이전
예: Head^: 최신으로부터 하나 이전, Head^^: 최신으로부터 전전
~n 추가 시 n번 이전
예: Head~3: 최신으로부터 3번 이전
commit hash나, 브랜치 명, 그리고 이 후 설명 할 magic구문
conflict 발생 시(pull이나 push)
-f
강제 진행
push에서 사용하기엔 매우 위험
이 방법보다는 revert를 사용
로컬에서 pull 하는 중 conflict 발생 시(pull request를 잊고 진행시 종종 발생)
git log로 문제 확인
로컬 git을 stash 후 git reset --soft로 지운 후 pull을 진행하고 stash pop 후 다시 진행
로컬의 변경내용이 불필요 할 시
git stash로 저장 후 git pull 이 후, git stash clear로 변경내용 제거
git statsh 0으로 변경내용을 다시 가져올수도(?)
로컬에서 push 하는 중 conflict 발생 시
로컬로 merge 후 해결, push
너무 꼬여서 대참사
타임머신(magic)
예: git reset --soft @{'3 minutes ago'}
이 후 remote를 git pull하여 진행
추가 구글링
back merge
일반적인 개발에서 배포로의 merge와는 반대 방향으로 배포에서 개발로의 merge를 진행하는 것
revert, reset
,
amend
revert: commit하나만 되돌리기
reset: commit시점까지 되돌리기
amend: 가장 최근 commit수정
stash
아직 마무리하지 않은 작업을 스택에 잠시 저장할 수 있도록 하는 명령어
forced push
로컬 저장소의 코드를 강제로 remote로 push
사용자의 로컬 변경사항들이 호환되지 않을 경우(remote branch가 local branch와 연관관계가 없을 경우 등등) 사용
공용 branch에서는 만장일치의 허락을 받기 전까지 사용 금지!!
Issue
업무와 협업을 위한 게시판을 작성하는 곳
일종의 레포의 게시판
default branch
git에서 repository를 처음 생성했을 시 자동으로 사용하게 되는 branch
과거에는 master라는 명칭으로 생성되었으나, 현재 main이라는 이름으로 바뀌었으며, git 버전업이 안 됬을 시, master로 생성되어 혼란을 야기 가능
문제발생시
참조
github 사이트 내
default branch 변경방법
Pull_Request_Template.md의 위치
github action
코르카 Pull Request 예시
git 컨벤션