본문 바로가기

멀티캠퍼스 프로젝트형 AI 서비스 개발 5회차/WEB

2/9 수

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

'멀티캠퍼스 프로젝트형 AI 서비스 개발 5회차 > WEB' 카테고리의 다른 글

2/11 금  (0) 2022.02.11
2/10 목  (0) 2022.02.10
2/8 화  (0) 2022.02.08
2/7 월  (0) 2022.02.08
2/4 금  (0) 2022.02.05