Git Basic

Posted by on December 24, 2018

Recently by the same author:


Python에서 Singleton 구현

Git

  • 기본적으로 명령형으로 commit문 작성
  • git에서 가장 중요한 부분은 원격저장소 코드
    • 진리는 원격저장소에



I. Git

리누스 토발즈가 개발

(분산) 버전 관리 시스템 - 히스토리 기록을 통해 돌아갈 수 있다

git != github. git은 컴퓨터에 존재하는 프로그램이다.



작동원리

디렉토리 중심

어떤 폴더에서 git을 생성하느냐가 중요

  1. 로컬에서 파일, 폴더를 생성
  2. 생성된 파일을 commit 목록에 추가(git add “파일명”)
  3. 생성된 자료의 스냅샷을 로컬에 생성(git commit -m “메세지”)
  4. 생성된 git 로컬 리포지토리를 원격 저장소와 연결(git remote add origin “원격 저장소”)
  5. 연결된 원격 저장소에 commit된 자료를 저장(git push -u origin master)



Git 명령어

  • git init: 이 폴더의 상태를 계속 관리하겠다
  • git status: 상태를 확인
  • git add 파일명: commit(저장, 스냅샷)할 목록에 추가. 변경 때 마다 추가해줘야 함
  • git commit -m “메세지”: (로컬에)저장, 스냅샷을 찍는다
  • git commit -am ‘message’ : 이미 생성한 파일의 add와 commit을 동시에
  • git log: 스냅샷 목록
  • git diff: 변경 사항 확인
  • git config –global user.email “이메일”: git 계정과 연동
  • git remote add origin “원격 저장소 주소”:저장할 원격 저장소 주소를 적용
  • git remote set-url origin “원격 저장소 주소”: 저장할 원격 저장소 주소를 변경
  • git remote -v : 원격 저장소 주소 확인
  • git push -u origin master: 지정된 주소의 원격 저장소에 저장
  • code . = 현재 위치에서 code 에디터 열기




II. 다른 사람과 협업

항상 원격저장소와 로컬의 상태를 동기화 해줘야 함


Issues

github의 게시판

  • new issue로 발행

close issue : 해결된 문제, 이슈를 제거

  • closed 탭에서 더 확인 가능



####Conflict

진실이 2개가 되는 상황

로컬에서 commit 후 다른 사항을 pull 할시에 발생


vscode의 기능

  • accept current changes : 현재 로컬 내용을 적용
  • accecpt incomming changes : 원격 내용을 적용
  • accept both changes : 둘 다 적용
  • compare changes : 두 개를 비교하여 적용

  • conflict 수정하는 commit은 message에 내용을 작성해줘야함
  • 그래도 conflict는 내지 않는 것이 좋다



III. branch

git에서 다른 흐름(세계)를 만드는 것

기본, 가장 중요한 세계를 master라고 함

새로 만든 branch는 새로 만든 세계와 상관 없다

원본을 무결하게 만들기 위해 사용

각 기능 마다 branch를 만들어서 개발


branch 만들기

git branch 새로 만들 branch : 새로운 branch 생성

git branch : 지금 진행되고 있는 branch들 출력

git checkout branch : 해당 branch로 이동



branch 합병

인수 하는 곳에서 실행!!

git merge branch : branch 병합

병합할 때 수정 없이 변경사항 모두 바로 적용