Git 구조 및 명령어

chae._.chae·2021년 10월 2일
0
post-thumbnail

Git 이란 무엇인가 ?

Git이란 소스관리를 위한 분산 버전 관리 시스템이다.
한 프로젝트에서 코드를 여러 사람이 함께 작업할 수 있도록 도와주는
(수정된 코드만을 보거나, 버그를 빠르게 찾거나 등등) 기능을 한다.
(에휴 이런 최고의 도구도 나같은 똥멍청이가 사용법 모르고 막쓰면 깃헙 들어가서 CTRL+C/V하고 있는다...ㅎㅎ)

위의 사진을 참고해서 보자.
(완성된 포스트는 아니고, 프로젝트 하면서 일단 해본것만 정리해보았다.)

사전지식1 : 로컬과 원격 저장소

로컬 저장소와 원격 저장소 : 저장소는 내 컴퓨터에 있는 로컬 저장소와 서버 등 네트워크에 있는 원격 저장소로 2개가 있다.
나의 작업물을 로컬(지역) 저장소에만 저장하는 것은 안전하지 않다.
깃을 이용하면 로컬 저장소와 원격 저장소를 연결해 안전하게 파일들을 백업할 수 있다. 기본적으로 로컬 저장소에서 작업을 수행하고, 그 결과를 원격 저장소에 저장해준다.

** origin은 원격이라는 뜻이다....ㅎ (진짜 똥멍청인가)

사전지식2 : 커밋과 푸시

커밋(commit) : 파일을 추가하거나 변경 내용을 저장소에 저장하는 작업
푸시(push) : 파일을 추가하거나 변경한 내용을 원격 저장소에 업로드하는 작업

사전지식3 : 브랜치(branch)

깃허브에는 브랜치 기능이 있다. (처음에 굉장히 헤멨던ㅜㅜ)
처음에 별다른 설정을 하지 않는다면 아마 master branch에서 작업을 하고 있을 것이다.
Master branch란 모든 repository의 기본/메인이라고 보면 된다.
협업을 하며 프로젝트를 진행할때에는 master branch로부터 파생된 각자 다른 branch들로부터 수정사항이 생기면, 이를 master에 병합하는 과정을 거치게 된다.
여러명이 같이 작업할때 conflict를 방지하기 위해서 각자 브랜치를 파서 작업한다.

깃허브 명령어 정리

먼저, git bash에 들어가서 내 작업 파일 있는 곳 까지 이동
예를 들어, 내 안스 파일이름이 Study_Android이면,
C:\Users\사용자이름\AndroidStudioProjects\Study_Android 이런식

  • git clone https:~~~ : 기존 소스코드 다운/복제
  • git remote : 현재 프로젝트에 등록된 리모트 저장소 확인

  • git branch newbranch1 : 브랜치를 생성하는 명령어(newbranch1이 생긴다)

  • git branch -a : 브랜치 모두 보기. 빨간색이 원격으로 된 브랜치

  • git pull origin master : origin master에 있는거 pull해서 가져오기

  • git add : 파일을 커밋이 가능한 상태로 만드는 것
    -> git add . : 전체를 모두 add(staging해준다) 띄어쓰기..^^
    -> git add : 파일/디렉토리 경로 : 변경 내용의 일부만 add

  • git stash : 하던 작업을 임시로 저장해두고 싶을 때 사용하는 명령어
    마무리되지 않은 작업을 스택에 잠시 저장.
    아! 그러니까 내가 어떤 작업을 하고 있던 도중, 다른 사람이 커밋을 했서 잠시 브랜치를 변경할 일이 생겼을때, 완료되지 않은 일을 커밋하는 건 싫으니까 그때 쓰는 명령어

  • git status : 현재 저장소의 상태를 나타내주고, 파일들의 상태를 확인할 수 있다

  • git commit -m "커밋메세지(Initial commit/Merge 등등)"
    -> git commit -m "마지막 커밋": 처음에 "마지막 커밋"이라 커밋명을 넣는다
    -> git commit --amend -m "마지막 커밋 수정" : 위에서 커밋한 메시지 문구 수정

  • git checkout exbranch : 현재 master브랜치에서 exbranch1으로 이동하기 위한 명령어
    B옵션을 사용하면 브랜치 생성과 체크아웃을 한번에 할 수 있다.

  • git merge exbranch : 브랜치를 병합하는 명령어
    (수정 부분이 겹치면 conflict가 발생할 수 있다)

충돌 발생

충돌이 발생했을때 Merge하기.
충돌 발생한 파일안이

<<<HEAD

user1파일

========================(이걸 기준으로 다른부분이 나뉜다)

User2 파일

이런식...
1. 안스에서 Git-Merge- Resolve Conflicts에서 파일 선택해서 Merge.
2. 왼쪽이 내 파일, 오른쪽의 master의 파일
밑에서 원하는거 찾아 accept해주기
(근데 아마 대부분 내가 틀리고 master가 맞으니까(?) accept right해서 머지해주기)
(마스트에 있는걸 내 브랜치로 가져와서 병합)

Merge하고 깃배쉬에서

  • git add .
  • git commit -m "merge"
  • git push orgin 브랜치명
profile
안녕하세용

0개의 댓글