Contents
Git 입문
   2022년06월23일     4분정도면 다 읽어요     - Comments

[카카오 클라우드 스쿨] Git 입문. 아주 기초가 되는 내용

GIT 입문

1. GIT의 개념

  • 버전 관리 도구(프로그램)
    • GIT을 잘 활용하면 문서도 작성할 수 있음!
    • github는 git을 업로드하는 저장소임!

      Git과 Github는 엄연히 다릅니다!


  • Repository
    • 실제로 저장되는 공간
      • 원격 저장소: 굳이 없어도 됨, 공영 저장소로 쓰기 위함, 큰 규모 프로젝트 진행 시 필수
      • 로컬 저장소: 내 PC에 저장, 나 혼자 쓸 땐 로컬 저장소만 써도 버전 관리 가능
    • 규모가 커지면 github보다는 gitlab을 쓰는 것이 일반적, 큰 회사 가면 자체 레포지토리를 쓰는 것을 볼 수 있음
    • 다음 그림과 같이 문서 충돌의 우려가 없음
      • img_91


  • Commit
    • 변경을 기록한다 (무언가를 적용시킨다)
    • 원격 레포랑 연결되어 있는 경우, commit은 내 컴퓨터에 기록을 남기는 것 (push까지 필요)
    • 다음 형식을 권장한다
      img_92



2. GIT 실습 - 초기설정

  1. Git을 설치한다 (기본 설정으로)

  2. C 드라이브에 폴더 생성
    • img_139

  3. 우클릭, git bash here
  4. 리눅스의 bash shell이 뜰 것임 (깃을 설치하며 깃에 해당 셸이 설치됨)
    • img_93

  5. 초기 설정
    • 아래 명령어는 설정들을 git에 전달한다
    • git config –global user.name “"
    • git config –global user.email

  6. 내 설정값 확인
    • git config –list
  7. 설정값 삭제
    • git config –unset –global user.name
    • git config –unset –global user.email



3. GIT 실습 - 기본 명령어

  1. git init
    • 로컬 저장소(repository) 만드는 명령어 git init
    • 우리가 만든 폴더에 숨겨진 .git폴더가 생성됨 (손대지 말것)
    • 위 명령어로 만들어진 .git 폴더가 있으면 로컬 저장소가 됨!

  2. git add
    • txt 파일을 하나 생성해서 막 적어본다
    • img_94
    • git add test.txt 혹은 git add .(점: 전체)
    • 아직 커밋을 진행한 것은 아님

  3. git status
    • 상태를 확인해 보기 위해 다음을 입력
    • git status
    • 새로운 파일이 생겼구나!를 알 수 있다
    • img_95

  4. git commit
    • 커밋을 함, 어떤 작업을 했는지 적는다
    • git commit -m “created new file”
    • 작업내용의 경우, 회사같은 곳에서는 add, create등 단어를 지정해 주기도 함

  5. git log
    • git log 입력해 보면 commit 한 이력이 나온다
    • 커밋 이력을 확인해 볼 수 있다
    • img_96

  6. 연습: 이제 파일을 수정해 보자
    • 내용을 추가한다
      • img_97
    • 이 상태에서 git status 입력하면 수정할 게 있다고 나옴
      • img_98
    • git add -> git commit 수행!
    • git log 확인해 보면 생성한거, 수정한거 모두 확인 가능
    • img_99



4. GIT 실습 - github 연동

  1. 깃에 깃허브 연동하기
    • 레포 주소 복사
    • img_100 * 원격 저장소(원본) 이름을 지정후 연동한다 (이름을 origin이라고 지정할 경우)
    • git remote add origin https://github.com/passionleader/tutorial.git

  2. 원격 저장소에 올려보기
    • git status를 보면 branch를 볼 수 있음
    • 아직까지는 master 라는 브랜치 하나밖에 없음 (로컬)
    • master를 origin에 집어넣겠다고 origin 한테 알리기 (현재까지 master(로컬)에서 작업한 내용들을 origin이라는 원격 저장소에 푸시한다)
      • git push -u origin master

  3. 연결된 곳 확인해 보기
    • git remote -v
    • img_103

  4. 주의사항
    • DB 주소, 암호 등이 적혀있는 파일의 경우 git ignore을 통해 숨겨야 함(업로드X)



5. GIT 실습 - 동기화

1 . 서로 다른 PC에서 순서대로 동일한 파일을 수정한 뒤 commit/push 하는 경우

  • PC1
    • 레포 생성: git init
    • 파일 생성: test.txt
    • git status - git add - git commit
    • 깃헙 연동1: git remote add origin https://github.com/passionleader/tutorial.git
    • 깃헙 연동2: git push -u origin master
    • (동기화 및 업로드 완료)

  • PC2 (그냥 연습용으로 다른 폴더여도 됨)
    • 원격 레포 복제: git clone https://github.com/passionleader/tutorial.git ../tutorial2
    • 받아온 파일 수정: test.txt
    • git status - git add - git commit - git push

  • PC1
    • git pull
    • PC2에서 변경된 사항이 적용된다
    • 와 정말 잘 수정된다!



2 . 서로 다른 PC에서 동시에 동일한 파일을 수정한 뒤 commit/push 하는 경우

  • 상황
    • img_104
    • hehehe를 먼저 푸시
    • hahaha를 뒤늦게 푸시할 때, 다음과 같은 오류 발생
    • img_105
    • 이런 경우 어떻게 해야 할까?



  • 해결시도
    • 뒤늦게 푸시하려는 hahaha를 푸시하기 전에 git pull을 시도한다
    • 안내 메시지가 뜸 (니가 작업한 hahaha는 먼저 들어온 hehehe랑 달라서 어떻게 할지 모르겠다)
      • img_106
    • 곧바로 파일을 확인한 경우 둘중에 고르라고 친절하게 파일에 표시를 해줌
      • img_107
    • 자동으로 합쳐지는 것을 아니고, 수동으로 해야 함
    • 불필요한 단어를 다 지우면 둘다 남게 되고
      • img_108
    • 이 상태에서 commit, push를 수행하면 된다
      • img_109

하나의 브랜치로 작업하면 이런 문제가 생기기 쉬움, 실무에서는 사람별로 브랜치를 나누는 것이 좋음