tutorial Folder를 생성하고 생성한 폴더로 이동
tutorial Folder를 git 저장소로 등록 (git init)
$ mkdir tutorial
$ cd tutorial
$ git init
위 사진과 같이 기존에 없던 .git 이라는 숨김 폴더가 하나 만들어 지게 된다.
본인 이름 입력 후 저장 후 닫기
$ git status
untracked files 로 sample.txt file이 보임
처음 한번만 인덱스에 등록하면 추정 대상으로 등록 할 수 있다.
$ git add <file>...
tip) $ git add . 을 사용하면 모든 파일을 인덱스에 등록할 수 있다.
sample.txt를 인덱스에 추가하여 확인하기
$ git add sample.txt
$ git status
인덱스에 sample.txt가 추가 되었으니 커밋 준비는 끝
$ git commit -m "메세지"
tip) gitk 를 사용하면 GUI에서 확인할 수 있다.
원격저장소를 이용하여 로컬 저장소의 변경 이력을 공유하는 방법에 대해 알아보자
내 PC의 로컬 저장소에서 변경된 이력을 원격 저장소에 공유하려면, 로컬 저장소의 변경 이력을 원격 저장소에 업로드해야 한다.
웹 상의 원격 저장소로 변경된 파일을 업로드하는 것을 Git에서 push라고 한다.
누군가의 변경 이력이 적용된 원격 저장소가 있으면, 그걸 웹에서 통째로 복제해와 내 PC에서 작업할 수 있다.
변경이력도 함께 로컬 저장소에 복제되어 오므로, 원래 원격 저장소와 똑같이 이력을 참조하고 커밋을 진행할 수 있다.
원격 저장소를 공유해 여러 사람이 함께 작업을 하면, 모두가 같은 원격 저장소에 push 한다.
그럼 다른 사람이 원격 저장소에 올려놓은 변경 내용을 내 로컬 저장소에도 적용(pull)할 필요가 있다
원격 저장소에서 로컬 저장소로 업데이트하려면 pull을 실행
원격 저장소에서 최신 변경 이력을 다운로드하여 내 로컬 저장소에 그 내용을 적용
$ git remote add <name> <url>
<> code를 click하여 url 복사해오기
$ git remote add origin https://github.com/shinywoon/forTest.git
$ git push <repository> <refspec>
<repository> 는 push 경로의 주소 <refspec>은 push 할 브랜치를 지정
실행 옵션에서 한번 -u를 지정하면, 이후에는 그 브랜치명 지저을 생략할 수 있다.
단, 비어있는 원격 저장소에 최초로 push했을 때는 원격 저장소명과 브랜치명을 생략할 수 없다.
master branch에 sample.txt가 추가 되어 있다.
$ git clone <repository> <directory>
git hub의 내용을 복제해 왔다
현재 branch가 main이므로 master로 변경 후 확인해 보면 sample.txt가 있는걸 확인 할 수 있다.
$ git checkout master
checkout은 나중에 설명 하겠다.
tutorial2 folder 에서 sample.txt 내용을 수정하고 커밋하자
git hub에서 확인 해 보면
수정 한 부분이 업데이트 되어 있는것을 확인 할 수 있다.
원격 저장소에서 tutorial로 최신 변경 내용을 가져오기
tutorial Folder로 이동후
$ git pull origin master
sample.txt file을 확인 해 보면 변경사항이 적용 되어 있다.
내가 끌어온 저장소가 최신 버전이 아닌경우, 즉 내가 pull을 실행한 후 다른 사람이 push를 하여 원격 저장소를 업데이트 해 버린 경우에는 내 push 요청이 거부되어 버림
이런 경우 merge를 통해 다른 사람의 업데이트 이력을 내 저장소에도 갱신해야 합니다
만약 병합하지 않은 채 이력을 덮어쓰게 되면 다른 사림이 push 한 업데이트 내역이 사라져 버리기 때문
병합 기능은 Git에서 변경한 부분을 자동으로 통합해 주는 기능
그러나 경우에 따라 자동으로 병합할 수 없는 경우도 있음
바로 원격 저장소와 로컬 저장소 양쪽에서 파일의 동일한 부분을 변경한 경우
이 경우 두 변경 내용 중 어느쪽을 저장할 것인지 자동으로 판단 할 수 없기 때문에 충돌이 발생
Git은 충돌이 발생한 파일의 내용을 아래 그림처럼 표시
이 부분은 직접 수정해 줘야 함
=== 로 구분된 윗 부분이 로컬 저장소, 아랫 부분이 원격 저장소의 변경 내용이다.
우선 tutorial Folder의 sample.txt를 열고 내용 수정, add , commit 하기
git commit test
git for test
commit
tutorial2 Folder로 이동하여 sample.txt를 열고 내용 수정, add, commit, push 하기
git commit test
git for test
anyway
tutorial Folder로 이동 후 push 진행 시 Error 발생