day20_20221018
GOAL
- 2회차: github를 통한 협업 방법
- 실험 브랜치에서 작업 : git checkout "branch"
- 마스터 브랜치에서 작업 : git checkout master
- 브랜치 병합 : git checkout master && git merge "branch"
- 충돌 상황 만들기 : 3 way merge
- 원격 저장소 만들기 : github.com , gitlab.com
- 지역 저장소의 비밀번호를 원격 저장소에 등록
- ssh-keygen, id_rsa.pub 파일을 github의 계정에 ssh 키로 등록한다
- 지역 저장소의 branch 와 원격 저장소의 branch 연결 : git push -u origin master
- 동료 추가 : github setting 의 collaborators 에 동료 계정 추가
- 충돌 상황 만들어보기
add의 3대의미
참고
add : commit 대기 상태로 만든다.
참고
add : untracked 를 tracked 로 만든다.
참고
add : 충돌이 해결되었음을 알려준다.
git add work1.txt
git commit -m "1"
git add work2.txt work3.txt
git commit -m "2"
참고
log 조회 : git log --oneline , git log참고
branch log 조회 : git log -- all 참고
달라진 부분 조회 : git diffadd의 3대의미
참고
add : commit 대기 상태로 만든다.
참고
add : untracked 를 tracked 로 만든다.
참고
add : 충돌이 해결되었음을 알려준다.
checkpoint
HEAD 가 가리키는 version 이 parent 다.
- git checkout A
- HEAD 가 A 를 가리키면 workspace 가 A 의 content 로 변경
- git checkout master
마지막에 작업한 내용을 지우고 싶다면 ?- HEAD -> master -> A 가 되도록 한다.
- reset
- reset B 를 하면 복원이 된다.
checkout 은 HEAD 를 옮기고, reset 은 HEAD 의 branch 를 옮긴다.
참고
git reflog : 현재까지 작업 기록을 찾을 수 있다.
HEAD 가 brach 를 가리키지 않을 때 reset 하면 어떻게 될까?
if ( attached ) { HEAD가 가리키는 branch 가 이동한다. } else if ( dettached ) { checkout 과 같은 동작을 한다. }
참고
git log --oneline --all --graph
사용자 command 정의
예시
git config --global alias.l "log --oneline --all --graph"
- .bashrc 에서 alias 해도 된다.
vim ~/.gitconfig 에서 alias 삭제- homedirectory 의 gitconfig
master brach 에서 exp 병합 : git merge exp
같은 파일을 수정 한 후에 병합
HEAD 가 가리키고 있는 version ( branch ) 를 대상으로 명령이 내려진다.
git checkout exp
git reset --hard COMMIT_ID
git reset master
참고
exp 가 master 를 merge 같은 파일에서 서로 같은 부분을 수정한 후 병합
git commit
base 에서 분기된 branch master 와 branch 1 이 있을 때,
git merge
command 를 실행하면 새로운 commit 이 생성된다.
3-way Merge
이 때, 두 branch 에서 모두 수정이 발생한 commit 에서는 conflict 가 발생
- 이미지 출처 : https://wikidocs.net/153693
git remote add origin "git address"
git remote -v
git push --set-upstream origin master
git push
참고
원격 저장소와 연결 끊기 : git remote remove origin
commit message 가 변경되면 commit id 도 변경된다.
- local 에서 commit 된 것만 변경하는 편이 좋다.
git commit --amend -m "work seven"
Commit 한 상태에서 branch 변경 하다가 detached 상태가 되고 작업물은 사라진 상태
이 글은 네이버 커넥트재단 부스트캠프 AI Tech 교육자료를 참고했습니다.