git 기본편

shinyeongwoon·2022년 12월 21일
0

git

목록 보기
2/4
post-thumbnail

콘솔을 이용한 방법

local에 tutorial folder 생성 후 로컬 저장소로 등록하기

tutorial Folder를 생성하고 생성한 폴더로 이동
tutorial Folder를 git 저장소로 등록 (git init)

$ mkdir tutorial
$ cd tutorial
$ git init

위 사진과 같이 기존에 없던 .git 이라는 숨김 폴더가 하나 만들어 지게 된다.

파일 commit 해보기

  1. tutorial Folder 안데 sample.txt 라는 이름으로 텍스트 파일 만들기
  • 본인 이름 입력 후 저장 후 닫기

  1. git status 명령으로 Git 관리 하에 있는 폴더의 작업트리와 인덱스 상태를 확인
$ git status

untracked files 로 sample.txt file이 보임
처음 한번만 인덱스에 등록하면 추정 대상으로 등록 할 수 있다.

  1. 파일을 인덱스에 등록하기
$ git add <file>...

tip) $ git add . 을 사용하면 모든 파일을 인덱스에 등록할 수 있다.

sample.txt를 인덱스에 추가하여 확인하기

$ git add sample.txt
$ git status

인덱스에 sample.txt가 추가 되었으니 커밋 준비는 끝

  1. commit 진행
$ git commit -m "메세지"

tip) gitk 를 사용하면 GUI에서 확인할 수 있다.

원격 저장소에 푸시(push)하기

원격저장소를 이용하여 로컬 저장소의 변경 이력을 공유하는 방법에 대해 알아보자

push

내 PC의 로컬 저장소에서 변경된 이력을 원격 저장소에 공유하려면, 로컬 저장소의 변경 이력을 원격 저장소에 업로드해야 한다.

웹 상의 원격 저장소로 변경된 파일을 업로드하는 것을 Git에서 push라고 한다.

Clone

누군가의 변경 이력이 적용된 원격 저장소가 있으면, 그걸 웹에서 통째로 복제해와 내 PC에서 작업할 수 있다.

변경이력도 함께 로컬 저장소에 복제되어 오므로, 원래 원격 저장소와 똑같이 이력을 참조하고 커밋을 진행할 수 있다.

pull

원격 저장소를 공유해 여러 사람이 함께 작업을 하면, 모두가 같은 원격 저장소에 push 한다.
그럼 다른 사람이 원격 저장소에 올려놓은 변경 내용을 내 로컬 저장소에도 적용(pull)할 필요가 있다

원격 저장소에서 로컬 저장소로 업데이트하려면 pull을 실행
원격 저장소에서 최신 변경 이력을 다운로드하여 내 로컬 저장소에 그 내용을 적용

gitHub Repository 만들기

원격 저장소에 push 하기

  1. 원격 저장소는 이름으로 기록해 둘 수 있다.
$ git remote add <name> <url>

<> code를 click하여 url 복사해오기

$ git remote add origin https://github.com/shinywoon/forTest.git
  1. push 하기
$ git push <repository> <refspec>

<repository> 는 push 경로의 주소 <refspec>은 push 할 브랜치를 지정

실행 옵션에서 한번 -u를 지정하면, 이후에는 그 브랜치명 지저을 생략할 수 있다.
단, 비어있는 원격 저장소에 최초로 push했을 때는 원격 저장소명과 브랜치명을 생략할 수 없다.

  1. git hub 확인해 보기

master branch에 sample.txt가 추가 되어 있다.

원격 저장소 clone 하기

$ git clone <repository> <directory>

git hub의 내용을 복제해 왔다
현재 branch가 main이므로 master로 변경 후 확인해 보면 sample.txt가 있는걸 확인 할 수 있다.

$ git checkout master

checkout은 나중에 설명 하겠다.

tutorial2에서 작업

tutorial2 folder 에서 sample.txt 내용을 수정하고 커밋하자

git hub에서 확인 해 보면

수정 한 부분이 업데이트 되어 있는것을 확인 할 수 있다.

원격 저장소에서 pull 해오기

원격 저장소에서 tutorial로 최신 변경 내용을 가져오기

tutorial Folder로 이동후

$ git pull origin master

sample.txt file을 확인 해 보면 변경사항이 적용 되어 있다.

변경 이력 Merge 하기

내가 끌어온 저장소가 최신 버전이 아닌경우, 즉 내가 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 발생

0개의 댓글