Git & Github

JM·2020년 6월 4일
0

Git & Github

목록 보기
1/1

Git?

  • Git이란 소스코드를 효율적으로 관리하기 위해 사용되는
    버전 관리 시스템입니다.

Github란

  • git 데이터를 온라인에 저장해 주는 사이트(https://github.com)입니다.
    백업이 기본 기능이지만 단순히 저장만 하는 것이 아니라 다른 유저들과 함께 코드를 공유하고 온라인으로 하나의 프로그램을 같이 제작하는 것도 가능하고, 가장많은 오픈소스를 가지고있습니다.

Github 전체적인 흐름

Git repository

2가지 종류의 Git repository가 있습니다.

remote repository

  • 파일이 Remote repository 전용 서버에서 관리되며 여러 사람이 함께 공유하기 위한 저장소입니다. 여러 사람과 같이 쓰는 공유 클라우드 느낌으로 생각하면 쉽습니다.

local repository

  • 내 PC에 파일이 저장되는 개인 전용 저장소입니다.

이런식으로 git repository가 2개가 있는데 결국여러 local repository에서 remote repository로 파일을 전송하여 전송된 파일들을 합치는 과정이 git을 이용하여 협업을 진행하게 됩니다.

git-clone

  • 로컬 저장소를 복제(clone)하는 방법

    git clone /로컬/저장소/경로

Work tree와 Index

내 PC에서 작업을 하고 저장소에 올린다고 했는데, 이렇게 작업하는 폴더를 git에서는 Work tree라고 표현합니다. 그리고 저장소에 업로드하기 전에 Index라고 불리는 공간에 등록해줘야합니다. 이를 staging이라고 표현합니다. 그리고 staging한 파일을 저장소에 업로드하는 것을 commit이라고 표현합니다.

Work tree --(staging)--> Index --(commit)--> repository

staging

git add 파일이름

staging을 위한 명령어입니다.
이 명령어를 이용해 파일을 Index에 등록합니다.

그리고 파라미터에 . 을 지정하면 모든 파일을 Index에 등록할 수 있습니다.

git add .

commit

  • index에 등록을 하고 이제는 파일이나 폴더의 추가/변경 사항을 저장소에 기록하는 것이 중요합니다. 이를 commit이라 합니다.

git commit -m "Comment"

git_log

  • 저장소에 기록을 한 내용 변경 이력을 확인하고 싶을때 사용합니다.

git log

git_status

  • 파일의 Untracked / Tracked 상태를 확인합니다.
    이는 git의 추적대상인지 보여주는 것입니다.

git status

여기까진 로컬 저장소의 진행 상황이므로 해당 내용을 공유하기 위해선 push해줘야 합니다.

  • Local repository에서 변경된 사항을 Remote repository에 공유하는 것 즉, 업로드하는 것을 Push라고 표현합니다.

  • 반대로 누군가가 Remote repository에 올려놓은 변경내용을 내 Local repository로 가지고 오고 싶을 때, 내 Local에 적용하는 것을 Pull이라고 표현합니다.

git_push

git push origin master
(다른 가지를 발행하려면 master를 원하는 가지 이름으로 바꿔주세요.)

만약 기존에 있던 원격 저장소를 복제한 것이 아니라면,
원격 서버의 주소를 git에게 알려줘야 해요.

git remote add origin <원격 서버 주소>
이제 변경 내용을 원격 서버로 발행할 수 있어요.

git_pull

  • 로컬 저장소를 원격 저장소에 맞춰 갱신하고 싶을때 사용합니다.

git pull

이렇게 하면 원격 저장소의 변경 내용이 로컬 작업 디렉토리에
받아지고(fetch), 병합(merge)됩니다.

  • 다른 가지에 있는 변경 내용을 현재 가지(예를 들면, master 가지)에
    병합하려면 아래 명령을 실행하세요.

    git merge <가지 이름>

중요한 부분이 항상 성공하는 게 아니라 가끔 충돌(conflicts)이 일어나기도 합니다.
이렇게 충돌이 발생하면, git이 알려주는 파일의 충돌 부분을 여러분이 직접 수정해서 병합이 가능하도록 해야 수정을 해야합니다.

충돌을 해결했다면, 아래 명령으로 git에게 아까의 파일을 병합을 해줍니다.

git add <파일 이름>

branch

  • branch란 독립적으로 작업을 진행하기 위한 개념입니다. 각각의 branch는 다른 branch의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있습니다.

  • 저장소를 처음 만들면, git은 'master'라는 이름의 branch를 만들어 줍니다. 따로 branch를 만들어 사용하지 않는 이상 master branch를 사용하게 됩니다.

그리고 이렇게 만들어진 branch는 다른 branch들과 Merge함으로써, 다시 새로운 하나의 branch로 모을 수 있습니다.

이론적으로 학습을 했고 앞으로 실제로 Github를 실제로 사용해보면 더 확실하게 이해가 될 듯 합니다. Branch와 merge, conflict 개념의 경우 어떤식으로 작동되는지 경험을 해본 뒤 다시 블로그에 글을 올리겠습니다.

0개의 댓글