Github는 다른 사람들과 프로젝트할 때 주로 사용하는데요... 나중을 위해 알고있으면 좋지만 프로젝트를 하지 않을거다 하시면 그닥 필요없지 않나... 싶지만 개인 개발자라도 다양한 기능을 추가하다 보면 중간에 계속 꼬이기 때문에 기본적인 사용법을 알고 있는것이 좋을 것 같아 저도 공부할 겸 포스팅합니다.
1. Git Area
1) Working Directory
작업 디렉토리는 local, 즉 자신의 컴퓨터에 있는 파일을 말합니다.
2) Repository
원격 저장소로 local이 아니라 git 사이트에 업로드된 구역을 말합니다.
2) Staging Area
Working Directory와 Repository의 경계 구역으로 원격 저장소로 이동할 정보들이 잠시 대기하고 있는 구역입니다.
2. 프로젝트 생성 명령어
git init - local repository 생성
git remote add origin [github 주소] - local repository를 원격 저장소와 연결
3. 기본 명령어
1) add
git add [파일이름] - 특정 파일을 Staging Area에 추가함
git add . - 모든 파일을 Staging Area에 추가함
2) commit
git commit -m "메시지" - Staging Area에 저장된 파일들을 로컬 저장소에 기록
commit을 하는 이유는 수정한 부분을 묶음으로 저장하고 기록하기 위해서...
3) push
git push - 현재 작업중인 branch의 로컬 저장소(commit)에 기록된 값을 원격 저장소로 이동
4) pull
git pull - 현재 작업중인 branch의 원격 저장소에 저장된 값을 불러옴
5) merge
git merge [branch 이름] - 다른 브랜치를 현재 브랜치와 병합함
4. 보조 명령어
1) git reset
git reset HEAD - 최근 커밋 시점으로 돌아가기
git reset [commit 번호] - commit 번호로 돌아가기
git reset - add된 파일 취소하기 (staging file 취소)
단 Commit, 기록을 없애고 돌아간다.
2) git diff
git diff - 현재 작업중인 디렉토리와 commit된 파일과 비교함
git diff --staged - commit된 파일과 add된 파일 비교
git diff [commit 번호1] [commit 번호2] - commit끼리 비교함
3) git revert
git revert [commit번호] - 해당 commit으로 갱신하기
5. merge conflict
서로 다른 사람들이 파일을 수정하고 push하는 데 작업할 때 같은 파일을 작업했다면... 충돌이 발생한다. 그럼 이를 어떻게 해결할 수 있을까?
Accept Current Change
: 현재 내용으로 유지한다.
Accept Incoming Change
: 새로 merge한 내용으로 수정한다.
Accept Both Changes
: 두 버전의 코드를 가져온 후 겹친 부분을 사용자가 확인하고 직접 수정한다.
Compare Changes
: 변경된 내용을 비교한다.
솔직히 아직 저도 github에 대해 잘 알지는 못하는데.. 다음에는 repository에 대해 더 공부하고 실습하는 사진과 함께 remote에 관한 글을 추가적으로 올리도록 하겠습니다.