내일배움캠프/내일배움캠프 TIL

내일배움캠프 AI 5기 TIL 19일차

sogummi 2023. 4. 6. 23:51

개인과제 진행 상황!
- 로그인 , 회원가입, 로그아웃 구현완료 
- 상품등록, 입고등록 완료 
- 남은 것 : 출고, 입출고 합산 기능
- 느낀 점 : 시간이 생각보다 촉박하다. 강의를 어제 4주차까지 완강한 상태라서 개념을 익히느라 여러 번 반복해보면서 흐름을 익히고, 왜 이런 기능을 쓰는 지 생각하면서 작성했다. 모델링, 뷰 함수 작성, urls 등등.. 이해하면서 과제를 해야 미완성이라도 나에게 남는 것이 많을 것 같다. 그리고 입고 오류에서 5시간이 걸려서 해결했는데 내일 제출이라.. 밤을 새야할 것 같다. 개인과제 말고 강의도 있고 TIL도 작성하니... 그래도 기본적인 모델링, 뷰 함수는 다 작성해놓아서 연결만 잘 되면 어떻게 되지 않을까 생각 중 그리고 조금 무리해서 하는 이유는 어차피 다음 주 팀 프로젝트에서 적용해야하니깐 내일까지만 잠을 덜 자면 될 것 같다~ 

 

Today I Learned
오전에 3시간 git특강이 있었다. 브랜치에 대한 개념을 확실히 정리한 것 같아서 좋았다.

<Git 특강 정리>

git diff : 최근 커밋과 작업 디렉토리 비교
git diff --staged : 최근 커밋과 스테이지 비교
git diff <커밋> <커밋> : <커밋>끼리 비교 (순서 주의) 
-> git diff <커밋 비교대상> <달라진 커밋 비교>

git log --oneline : git log 간략하게 보기

<작업 되돌리기 (충분한 연습 필요) >
만들어진 버전을 되돌리는 2가지 방법 
revert vs reset 
1. revert : 버전을 되돌린 새로운 버전을 만들기
- 조금 더 안전하게 되돌리고, 작업 내용을 남기고 싶을 때
 - 커밋 로그가 지저분하고 가독성이 떨어질 수 있는 단점 
2. reset : 버전을 완전히 되돌리기 
- 커밋 로그를 깔끔하고 유의미한 커밋들로 유지하고 싶을 때
- reset에는 3가지 방법이 존재한다. (soft, mixed, hard) 
(1) soft reset : 스테이지로 되돌리기 (커밋 취소) 
(2) mixed reset : 작업 디렉토리로 되돌리기 (커밋 & add 취소 / reset 명령의 디폴트) 
(3) hard reset :  작업 디렉토리까지 취소 (작업 디렉토리에서 만들었던 변경사항 볼 수 없음 주의!) 

----------------------
git reset 과 git revert 유의할 점 ..! 
gir reset <되돌아갈 커밋> 
gir revert <취소할 커밋> 버전을 되돌린 새로운 커밋을 만드는 명령어기 때문에 커밋 메세지 또한 필요

<stash> (충돌 유의) 

git stash : 변경사항 임시저장
git  stash -m <메세지> : 변경사항을 메세지와 함께 저장
git stash list : 임시저장 리스트 확인
git stash apply <stash이름> : 임시저장한 것 다시 내 작업에 돌리기 

*git stash list 명령어를 입력하면 아래와 같이 
stash@{0}: On master: add b in a.txt 이런식으로 출력되는데, 
{}안의 숫자는 최근에 임시저장 되었을 수록 0에 가깝다. 

:wq (빔 편집기 저장 후 나가기) 

+) push 취소
로컬에서 restet 후 push 명령어 입력하는데,
git push --force
git push -f 
이런식으로 강제로 push 명령어를 입력한다. 또한 이러한 취소 방식을 권장하진 않는다. 


<branch 관리> 
git branch : 브랜치 목록 확인 (*표시가 있는 곳이 현재 브랜치가 있는 곳을 알려줌)
git branch <브랜치 이름> : 새 브랜치 생성
git checkout <브랜치 이름> : 특정 작업환경으로 바꾸어주는 명령어
git checkout -b <브랜치 이름> : 새 브랜치 생성 동시에 그 브랜치로 체크아웃(이동) 

<HEAD> 
현재 작업 중인 브랜치의 최신 커밋을 가리킨다. (어디서 작업 중인지 알 수 있다.)
+) checkout?
HEAD의 위치를 특정 브랜치의 최신 커밋으로 옮김 

<merge (브랜치 합치기, 병합)>
꼭 알아야 할 사항 ! merge는 main 브랜치에서 다른 브랜치들을 땡겨서 병합하는 개념!
그러므로,

main branch 에서 git merge <병합할 브랜치 이름> 

(1) 빨리감기 병합 : 변합이 없는 메인 브랜치가 빨리감기를 하듯 브랜치 내용이 업데이트 되는 병합 기법 

(2) 일반 병합 : 브랜치와 메인 브랜치가 서로 다른 커밋이 있는 상태에서 두 브랜치를 병합한 새로운 커밋이 생성되는 것을 의미
=> 새로운 커밋을 만들기 때문에 커밋메세지 또한 작성해야 한다.