clone 명령어를 통해 복사하여 홈 로컬에서 내려받음 ( git clone <프로젝트 HTTPS 주소> 명령어를 사용하여 프로젝트를 한번에 복사하여 내려받으면 .git 파일이 자동으로 생성되며 깃에서 관리하는 파일로 자동으로 등록된다. 이후에는 pull 과 push 로 변경사항을 내려받고 올려주고하면 된다. )
로컬 pc에 내려받아진 모습
집에서 작업한 내용을 다시 깃허브로 올려놓은 모습( clone 명령어를 통해 깃 설정도 같이 내려받았기 때문에 깃 연동을 따로 할 필요 없이 푸쉬를 진행할 수 있다. )
학원에서 깃허브를 통해 집에서 작업한 내용을 다시 내려받는 상황
여기서 clone 을 사용하지 않고 pull 을 사용하는 이유는 이미 깃으로 관리되고 있으며 clone 명령어는 해당 프로젝트의 모든 내용을 내려받는 명령어이기 때문에 변경사항만 받아오는 pull 명령어를 사용
만약 깃허브에 push 를 진행할 때 만약 다른 작업자가 내가 작업하는 중간에 푸쉬를 진행했다면 깃허브에 남은 커밋 로그보다 내가 작업중인 커밋 로그가 이전 시점이기 때문에 푸쉬가 불가능하다.
> 위 경우는 git pull 을 사용해서 변경된 내용을 내 로컬로 병합한 뒤 다시 git push 로 깃허브에 올려 놓는다.
> 만약 깃허브의 추가된 커밋이 필요 없고 내 로컬의 작업만 강제로 등록한다면 git push -f 옵션을 사용한다.
( -f 옵션을 사용하면 이전의 깃허브 기록이 내 기록으로 강제로 바뀐다 )
실습 예제
1. 실습 풀이
작업 디렉토리 생성 및 깃허브 원격지 등록
깃에 add, commit 진행 후 깃허브에 push
2. 실습 풀이
각 브랜치 생성 후 필요한 파일 생성
master 브랜치로 변경 후 각 브랜치의 내용 merge 하여 합친 뒤 깃허브에 푸쉬
정상적으로 깃허브에 푸쉬된 모습
3. 실습 풀이
testdir 에 클론 받아오기
클론으로 받아온 프로젝트 디렉토리로 이동, project.txt 에 내용 추가
project.txt 에 "공통기능 추가" 문구 추가
4. 실습 풀이
masterdir 로 돌아와 제일 처음 커밋 로그로 돌린 뒤 깃허브에 강제 푸쉬
깃허브에 강제 푸쉬 되어서 project.txt 빼고 다 날아간 모습
5. 실습 풀이
testdir 의 작업 내용을 깃허브로 push
푸쉬된 내용 깃허브에서 확인
다시 masterdir 로 이동하여 testdir 에서 push 한 내용 pull 로 당겨오기 및 서로 로그가 동일한지 확인