Remote Repository
- 원격 온라인 서버 여러 사람 공유Local Repository
- 내 컴퓨터의 개인 전용 저장소Fork
- 프로젝트 원격 저장소를 내 원격 저장소로 가지고 오는 작업Clone
- remote repository에서 내 컴퓨터로 가져오는 작업Push
- 로컬에서 변경된 내용을 커밋으로 저장하고 리모트에 올려주는 작업Pull
- 리모트에서 변경사항이 있을 때 내 로컬로 가져오는 작업Pull request
- 협업자에게 나의 작업물을 취합 요청하는 과정merge
- 상대방의 작업물과 나의 작업물을 취합하는 과정git config --global user.name " "
git config --global user.email " "
git config --global core.editor nano
SSH 키 생성
- 비대칭 키
ssh-keygen
- 키 페어 생성 (경로 ~/.ssh./)
id_rsa
- 개인키, 비밀키
id_rsa.pub
- 누구에게나 공개가능한 공개키- 공개키 복사하여 github에 등록
cat ~/.ssh/id_rsa.pub
- github에 이동하여 프로필 - 세팅 - SSH and GPG keys
- 테스트
Fork
로 리모트 레파지토리에 복사
git clone <레파지토리 주소>
내 컴퓨터로 복사해오기
- 커밋 전
git status
- stagingarea 와 untracked files 목록 확인
add
: 파일을 커밋 할 수 있는 상태로 만들어준다.
( 내 로컬의 untracked file을 git의 관리 아래인 staging area로 추가)
git add
<파일명>
git add.
모든 파일 한꺼번에 추가
restore
: 커밋되지 않은 로컬 레파지토리의 변경사항을 폐기
gir commit
- 변경사항 저장
-m
메모를 통해서 버전 변경 기록 관리
git commit -m 'mypage 구현'
git reset
: local 에서 커밋한 내용을 취소
git reset HEAD^
: 가장 최신의 커밋 취소 (HEAD~1)
git push
: 현재 로컬의 커밋 기록들을 내 리모트에 업로드
git push <origin> <branch>
git push origin master/main
git log
: 현재까지 커밋 된 내역 확인 (창종료:q)
- Pull Request : 리모트에 push 해 놓은 변경사항에 대해서 협업자에게 알리는 것 (현업에서는 PR) 반영 요청
Unmodified
: 기존에 커밋했던 파일을 수정하지 않은 상태Modified
: 기존에 커밋했던 파일을 수정한 상태Staged
: 커밋이 가능한 상태 (커밋 위해서 staged area에 add 작업 필요)
git init
: 내 pc에서 만든 디렉토리를 git의 관리하에 들어가게 만들어준다.
(git repository 로 변환) > local repository 생성git remote add origin <레파지토리 주소>
: 로컬을 리모트와 연결하여 깃헙에서 원격으로 관리git remote add (pair) <레파지토리 주소>
: 상대방의 리모트 레파지토리에 연결git remote -v
: 현재의 로컬 레파지토리와 연결된 모든 리모트 레파지토리 목록 확인git pull <shortname> <branch>
: 상대방의 리모트에 있는 작업 내용 받아오기 (자동으로 병합)
ex) git pull pair master
수정하지 않고 나의 리모트 레포에 올리기 - push
수정하고 add-commit 후 push 하여 리모트 레포에 올리기같은 부분을 변경한 내용이 존재하여 자동으로 병합 할 수 없는 경우
merge conflict 가 발생
- got status 로 어떤 파일이 충돌중인지 확인
Accept Current Change : 내가 수정한 내용으로 반영
Accept Incoming Change : 리모트 레파지토리의 내용으로 반영
Accept Both Changes : 변경 사항 모두 반영
수정 내용 확인 후 수정할 부분 남기고 삭제- 수정을 마치면 병합 커밋을 생성하기 위해 파일을 staging area로 추가
- merge commit은 자동으로 커밋 메시지 생성 (수정 가능)
git add - commit - push
git commit -am "메시지"
오늘은 매번 말로만 들어봤던 깃과 깃허브를 알아보고 학습할 수 있던 시간이었다. 처음에는 생각보다 너무 어렵고 이해가 잘 안되어서 페어분과 실습조차 잘 못했지만 페어분이 도와주시고 실습해보고 마지막 라이브세션때 설명을 들으니 많이 이해가 된 것 같다! 1일1커밋까진 아직 무리이지만 시간 될 때 많이 연습해두어야겠다.
내일은 드디어 자바 학습을 들어가는 날이다. 학습분량이 어마어마 할 것 같아서 걱정이고 페어분과 계속 문제를 같이 풀면서 해야되서 그것도 많이 걱정된다..