Hayden's Archive

[Git] Git CLI 기초 (2) 본문

Study/DevOps

[Git] Git CLI 기초 (2)

_hayden 2020. 6. 20. 03:34

자료 출처 : 플레이데이터 Git 입문 강의 (변영인 강사님)

* 다른 팀원들이 이미 만들어놓은 저장소를 복사해오거나 오픈소스 프로젝트를 깃 명령어로 다운로드 받는 방법

- 원격 저장소를 복사해 올 폴더로 이동

- 폴더 내부에서 오른쪽 클릭을 한 뒤 Git Bash Here를 눌러서 Git Bash를 켠다.

- 이미 존재하는 깃허브의 원격 저장소의 주소를 복사한다. (원격 저장소를 다운로드하면 별도 초기 설정할 필요 없이 바로 연결된 상태로 저장됨.)

 


* 스테이징과 커밋하기 : 변경사항을 저장하고 커밋을 반영 및 취소하는 방법

새 파일 추가하기

- 지역 저장소에 테스트할 새 파일을 만든다.

 

- git status 명령어로 현재 스테이징 상태 확인

 

- 특정 파일 스테이징

(git add .이나 git add *로 일괄추가하는 것이 대부분. 하지만 git add 파일명으로 특정 파일만 스테이징해줄 수도 있음.)

(이후 git status를 입력해주면 변경한 파일이 초록색으로 변함)

 


파일 내용 수정하기

- 이렇게 테스트 파일에 내용을 수정함

 

- git status 명령어를 통해 파일 수정시 스테이징 상황 확인

(파일 자체를 추가했던 것은 초록색으로 그대로 있는데 이전과 작성된 내용과 별개로 수정된 내용만 따로 인식해서 빨간색으로 표시)

 


- 스테이징 해제(언스테이지) : git reset 명령어를 사용하여 추적 중인 내용을 초기화할 수 있음.

 

- 커밋 생성

 

- 커밋 명령어를 입력하고 나면 갑자기 창이 뜨면서 아무것도 입력할 수 없게 됨 -> VI 편집기라고 하는 리눅스의 문서 편집기임 ==> i를 누르면 "끼워넣기"가 되며 문서 편집 가능 ==> 커밋 메세지 입력

(VI 편집기 없이 커밋 메시지 바로 입력 https://hayden-archive.tistory.com/235#novi )

 

- 커밋 결과 확인 (만약 커밋이 많아서 로그가 자동으로 끝나지 않는다면 q를 누름)

 


git reset을 통한 커밋 취소

- git reset 명령어 뒤에 아무값도 입력하지 않으면 직접 커밋, 즉 HEAD까지 인덱스 초기화 
- 뒤에 커밋 주소를 넣으면 해당 커밋까지 변경 이력과 인덱스를 옮겨줌. 여기서 커밋해시를 넣어야 하지만 커밋해시는 길고 복잡하므로 현재 작업하는 위치 HEAD라는 별명을 사용해서 이동.

 


VI 편집기 없이 커밋 메시지를 바로 입력할 수도 있다.

 


.gitignore

- git add . 를 쓰자니 올라가지 말아야 할 내용이 포함되고, git add 파일명 으로 추가하려니 실수도 잦고 시간이 오래 걸리는 경우 -> .gitignore에 제외할 파일의 확장자나 파일명을 입력하면 git add . 할 때 제외 시켜줌!

- 저장소의 가장 상위 폴더로 가서 .gitignore라는 확장자만 가진 파일을 만들고 그 안에 제외하려고 하는 파일명이나 별표와 확장자를 적어주면 git add . 를 할 때 제외됨

 

- 이미 인덱스 또는 커밋에 반영된 파일은 남아있음. 

 

- 이 경우 git rm -r --cashed . 를 써서 현재 저장소에 있는 파일들을 인덱스에서 일괄 삭제 처리하고 그 이후에 git add . 을 하면 제외하려고 하는 파일이 더 이상 반영되지 않음

 

- 이후에 커밋을 하고 원격 저장소에 반영을 시키면 해당 파일은 더 이상 추적되지 않음.

 


지역 저장소와 원격 저장소 동기화

- 저장소 공유에 앞서 원격 저장소 연결 여부 확인

: 혹시 저장소 이름 잘못되었거나 origin라는 이름으로 연결되지 않았다면 git remote add 명령어로 수정 ( 참고 : https://hayden-archive.tistory.com/226#remoteconnect )

 

- 지역 저장소 업로드

 


원격 저장소의 변경 사항을 지역 저장소에 반영

 

 

- 원격 저장소에 추가된 파일을 지역 저장소에도 반영! 

 

 


지역 저장소와 원격 저장소 커밋

지역 저장소
- 지역 저장소 폴더에 이동 후
- git add .
- git commit -m "message"


원격 저장소
- 원격 저장소 GitHub 페이지 이동 후
- Drag & Drop
- 커밋 저장

 


지역 저장소와 원격 저장소의 내용이 달라서 충돌이 발생할 경우

 

 

- push에 앞서 pull을 해줘서 차이점을 해결해줘야 한다.

 

- 충돌 지점을 올바르게 수정하고 스테이징 후 커밋하면 둘의 충돌을 해결한 새로운 커밋 생성