일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 프론트엔드개발자
- Where
- react hook
- reduce
- promise 비동기처리
- Firebase
- 국비지원취업
- TypeScript
- 2024 sqld
- Filter
- map
- 패스트캠퍼스
- 프론트엔드부트캠프후기
- 패스트캠퍼스 부트캠프
- github
- 퍼블리셔 이직후기
- js CRUD
- git
- sqld 55회
- css 꿀팁
- 부트캠프
- 성능개선
- foreach
- sqld 자격증 시험
- 리액트오류
- 부트캠프 취업후기
- 야놀자x패스트캠퍼스
- 국비지원
- 야놀자 fe 1기
- firebase rules
- Today
- Total
Tech is created to fix problem
Git merge, pull request, 깃헙의 유용한 기능들 본문
git branch 관련 명령어들
- git branch 브랜치이름 : 브랜치 만듦. 브랜치로 이동 X
- git switch -c 브랜치이름 : 브랜치 처음으로 만들고 브랜치로 이동 O
* 2019년도부터 checkout이 switch로 업데이트됨!! - git branch --list : 현재 브랜치 목록
- git branch -d 브랜치이름 : 해당 브랜치 삭제하기
- git push origin 브랜치이름 : 브랜치 내용을 원격 origin 으로 푸시
- git merge 브랜치이름 : 현재 경로에서 브랜치 내용들을 병합
- git rm -rf .git : 깃 완전 초기화. git init 부터 싹 삭제
- git rm 특정파일이름 : 특정 파일만 삭제
Pull request
- Pull = fetch(원격저장소 내용 가져오기) + merge(로컬과 병합)의 개념
- Pull request 날릴 때, 코드리뷰 요청이나 코멘트!! 작성하는 습관을 꼭 들이자
- main에서 branch merge 했으면 그 branch는 바로 삭제! (현재 작업하고 있는 브랜치를 더욱 직관적으로 보기 위해)
- github에서 branch 지웠다고 local에 반영되지 않음. 그래서
git fetch —prune (가지치기 해주자. 원격저장소에서 사라진 브랜치를 vscode에서도 삭제해줌. 단 로컬은 직접 삭제해주어야 함. 원격과 다른개념이기 때문에)
깃허브에서 Conflict 되었을때??
- 바로 깃허브에서 수정할 수도 있지만
- 로컬에서 수정해서 다시 푸시하는 게 정석
(충돌나는 브랜치 파일로 가서 git merge main 해서 해결해주고 다시 푸시하자)
깃허브에서 정말 몰랐던 기능들,,
Issue : 프로젝트의 TODO, 요청사항, 진행사항이나 목표 등등
Milestones : ISSUE의 진행상황을 차트로 보여줌
Wiki : 이 프로젝트에 대한 기술서
실제로 프로젝트 할 때, 사용하게 될지는 잘 모르겠지만 프로젝트를 관리하는 데 굉장히 유용할 것 같기는 하다
branch 분기해서 pull request 보내는 연습해보기
삽질1) push할 때 rejected 오류가 나는건 원격저장소와 로컬의 커밋 버전이 일치하지 않기 때문이다!!
해결1) git reset —hard HEAD~1 내 커밋을 한 단계 뒤로 리셋(깔끔한 방법이지만 reset은 비추)
해결2) 🚩 웬만하면 pull 해서 내 로컬 내용이랑 충돌되는 것 해결해주고 다시 푸시할 것!!
해결3) fast forward 라면 푸시 가능함 왜?
❓fast-forward
(fast-forward)
- branch가 main의 커밋 내역을 가져와서 새로운 커밋을 만들어냄
- Head 위치는 브랜치의 Y 로 이동하게 됨
- branch가 모든 커밋내역을 가지고 있다면, 병합할 때 단순하게 커밋이 이동한다!
(none-fast-forward)
- branch가 main의 모든 커밋 내역을 가지고 있지 않다
- main 에서 병합하게 되면, 커밋 이동이 아닌 새로운 커밋이 생기면서 병합한다!
결론적으로 fast-forward의 장/단점을 따지자면
장점 : 분기점이 남지 않기 때문에 커밋 기록을 더 직관적으로 볼 수 있다
단점 : merge 했다는 기록도 없고, 분기점도 없다
결론은 기록이 상세하지 않기 때문에 비추이다!!!
삽질2) git stashed 는 왜 해야할까,,?
저 pull 에러의 원인은 원격 저장소에서 pull 할 때 로컬에 수정한 파일이 존재하기 때문이다.
로컬에서 파일 수정 중에 pull 하려고 하면 위와 같은 에러가 발생한다. 그래서??
해결1) git stash
로컬 내 수정사항을 임시 공간으로 옮긴 후
해결2) git pull origin main
원격 저장소를 pull 한다
해결3) git stash pop
로컬 내 수정사항과 원격 저장소에서 pull 한 파일을 병합한다
오늘의 한 줄
Github desktop 즉 GUI 만 사용해서, 병합하거나 충돌나거나 브랜치 분기하거나 모든 것을 버튼 하나면 다 해결되었는데,, 하나 하나 깃 명령어로 하려니까 현재 상태가 잘 그려지지 않아서 어렵고 헷갈린다,, 현업에서 모두 CLI를 쓰는건가ㅜ
'Git & Github' 카테고리의 다른 글
[Git 오류] pull 하고 push 해도 안된다면 rebase (0) | 2023.09.03 |
---|---|
Git flow, gitignore, convention 정해서 협업하기 (2) | 2023.07.18 |
Git add ~ commit ~ push 까지 (0) | 2023.07.18 |