728x90
GitHub 특강 둘째 날!
오전에는 경향 파악과 rebase를 배우고 실습 문제를 풀며 응용했고,
오후에는 팀 프로젝트(3인 1조)로 fork, clone, commit, push, pull-request, merge 일련의 과정을 협업했다!
각자 이해도와 환경설정이 다르다 보니 오류, 오타, 경로 잡는데만 시간이 엄청 걸렸다..
전체적인 그림을 이해해야 대응하고, 응용도 할 수 있다는 걸 느꼈다. 다들 어려워한다. 기죽지 말자!
rewind : commit을 과거 시점으로 되감기. 원복한 내용 이후의 최근 것은 .git에 임시 저장됨. rewind 구간은 중복 생성 가능
rebase 한 내용과 rewind 한 내용에 동일한 부분 commit이 있다면 충돌(conflict)이 일어날 수 있음
cd /workspace # Rebase 실습할 GitHub 저장소 소스폴더 다운받고 이동
git clone https://github.com/taeung/git-training
cd git-training
git rebase -i --root # --root 대신 최신 commit 기준으로 HEAD~10 10개중에서 선택도 가능
# 가장 오래된 commit 두번째로 되감기
# 두번째로 가장 오래된 commit 의 "pick" 글자를 "edit" 으로 수정하기
# nano 편집기 저장 : ctrl + o, nano 편집기 나가기 : ctrl + x
git log --oneline # 되감기(rewind)한 commit 리스트 확인하기
git status # rebase interactive 상태 (되감은 상태) 확인
git rebase --continue # 되감은 내용 풀기(continue)
git rebase --abort # rebase 취소
git reset --hard origin/master # commit history 복구
오픈소스 uftrace GitHub에서 v0.8 버전 과 최신 버전 비교하기
cd /workspace/
# uftrace 프로젝트(C/C++ 프로그램 함수호출 추적 오픈소스) 다운로드
git clone https://github.com/namhyung/uftrace
cd uftrace/ # uftrace 폴더로 이동
git fetch --tags # uftrace 버전 리스트 (태그) 가져오기
git tag # uftrace 버전 확인
git reset --hard v0.8 # v0.8 버전(과거시점)으로 현재 폴더 변경
# 현재 폴더 에서 cmd-*.c 관련 파일 확인
# uftrace 의 서브명령인 record, replay 등에 대한 소스 파일 확인
ls
CONTRIBUTING.md Makefile.include arch cmd-info.c cmd-replay.c doc scripts utils
COPYING NEWS check-deps cmd-live.c cmd-report.c libmcount tests
INSTALL.md README.md cmd-dump.c cmd-record.c cmd-script.c libtraceevent uftrace.c
Makefile TODO cmd-graph.c cmd-recv.c configure misc uftrace.h
git reset --hard origin/master # 다시 원본 GitHub 프로젝트 내용으로 현재 폴더 변경하기
# cmds 폴더에서 uftrace 의 서브명령인 record, replay 등에 대한 소스 파일 확인
# 현재에는 cmds 폴더 내부에서 따로 소스파일을 관리함
ls cmds
dump.c graph.c info.c live.c record.c recv.c replay.c report.c script.c tui.c
Rebase 집중 실습 : 이전 예제에서 중간에 넣은 3개((3+2)+1)의 commit을 1개로 합치기
git rebase -i --root # commit 수정하여 rebase 영역 잡기
git log --oneline
git reset --soft HEAD~1 # --hard와는 다르게 commit 정보만 삭제하고 파일 변경분은 남겨둠
git commit --amend # test: add hello_2.c and hello_3.c로 commit 수정
git show # commit 수정된 것 확인
git rebase --continue # rebase 진행
git log --oneline # commit 확인
ls # hello_3.c 파일 남아있는지 확인
git blame 명령 : 해당 소스라인을 누가 마지막으로 수정을 했는지 commit ID 추적 가능
# 해당 소스파일을 누가 언제 수정했는지 소스라인 기준으로 commit 정보를 찾아낼 수 있음
git blame cmds/record.c
# commit 정보를 확인할 수 있음 (참고: blame은 최신 commit 순으로 조회)
git show edf805aad
1. 1/17 월 | 2. 1/18 화 | 3. 1/19 수 | 4. 1/20 목 | 5. 1/21 금 |
취업 특강 | 파이썬 환경 설정 (파이참, 아나콘다, 주피터 노트북) |
파이썬 데이터 타입 (list, tuple) |
파이썬 데이터 타입 (range, string, dictionary, set, bool) |
파이썬 사용자 정의 함수, 객체지향, 사용자 정의 클래스 |
6. 1/24 월 | 7. 1/25 화 | 8. 1/26 수 | 9. 1/27 목 | 10. 1/28 금 |
파이썬 사용자 정의 클래스, 사용자 정의 모듈 |
DB(MySQL) DBMS, MySQL 환경 설정, DB/테이블 생성, DB 입력·활용, Index |
DB(MySQL) View, 백업과 복원, DB 모델링, 관계(PK, FK), DML(CRUD), 데이터 타입 |
DB(MySQL) DML(CRUD), WHERE 조건, 패턴 매칭, SubQuery, 정렬, 그룹핑, 집계 함수, 트랜잭션(ACID 특성) |
DB(MySQL) JOIN, UNION, NOT IN, WEB |
11. 2/3 목 | 12. 2/4 금 | 13. 2/7 월 | 14. 2/8 화 | 15. 2/9 수 |
WEB WebStorm 환경 설정, HTML, CSS, JavaScript, jQuery CDN |
WEB jQuery 문법, Selector, Method |
WEB jQuery Method, Event, AJAX |
GitHub 특강 소스코드 관리, Fork, Clone, Branch, Commit, Push, Pull-Request, Rebase |
GitHub 특강 프로젝트 관리, Fetch, Rebase, Merge, Conflict |
* 전체적인 그림, 흐름을 파악하자!
728x90