github 사용 이유와 사용법

jonghyuck’s velog·2021년 5월 31일
0
  1. git, github
  2. git을 로컬저장소에서 커밋 관리하기
  3. 원격저장소에 커밋
  4. 원격저장소에서 내려받기
  5. 협업의 시작 Branch

✅ 1. git, github

우리는 코딩을 배울수록 혼자보다 여러명이서 함께 만드는 소스코드에 익숙해져야 한다. 팀 프로젝트에서 사용할 공용 폴더를 만들고 그곳에 소스코드를 올려 놓는다고 가정해보면 초기 소스코드가 버전A라고 해보자. 코드는 계속 수정되어 코드 B가 되었고 최종 final코드가 되기까지 계속해서 수정이 이루어진다. 그러던 중 팀원 다수가 동시에 코드 B에서 수정을 진행하고 저장한다면 어떻게될까? 어떤게 최종 코드지?

팀 프로젝트에 참여하는 인원이 많고 기간이 길수록 이런 문제점때문에 버전관리가 필요하다. 이미 저장한 코드역시 ctrl + Z 로 원하는 지점으로 돌리고 싶다는 수요가 발생했고 여기서 파생된것이 github이다.

git? github?

git을 처음 접하는 경우 위 두개의 개념을 혼동할 수 있는데, 정확히 말하면 git은 소스코드 버전 관리 시스템이고 github는 git을 올려둘 수 있는 호스팅 사이트중 하나일 뿐이다. github외에도 다른 사이트가 있지만 가장 유명한것은 github.


✅ 2. git을 로컬저장소에서 커밋 관리하기

다른 사람과 협업 없이 혼자 개발 및 소스코드를 관리한다면 로컬저장소의 커밋만 다루어도 충분하다.

  1. 로컬 저장소로 사용할 폴더를 생성한다. (mysite)

  2. terminal로 mysite폴더에 접속해서 git init 명령어를 통해 .git폴더를 생성한다. 여기서 생성된 .git폴더가 우리가 부르는 로컬 저장소이다.

  3. 커밋 만들기
    git을 초기화 했다면 이제 커밋을 해보자. 먼저 관리를 위해 내 정보를 등록한다.

    git config --global user.email "aaa@aaa.aaa
    git config --global user.name "aaaa"

    만약 전역 등록이 아닌 대상 레파지토리에만 등록하려면 --global을 지우면 된다.

    vi README.txt
    git add README.txt
    git commit -m "first commit"

    위 명령어로 첫 번째 커밋이 된것이다.

  4. 커밋 되돌리기
    위에서 만든 README.txt의 내용을 수정 후 다시 커밋을 했다고 하자.

    위처럼 파일이 바뀌었다고 뜸과 동시에 타임라인이 생성된다.

    git log

    명령어를 통해 확인해보면
    위와 같이 내용을 확인할 수 있다.
    여기서 commit뒤에 붙은 값을 복사해서

    git checkout 483586562721374126ae4732cdd98ba3c711e38a

    를 쳐주면 (앞 7자리만 쳐도 된다.)

    첫 커밋으로 돌아갈 수 있다.

    로그값도 처음으로 돌아온 것을 볼 수 있다.
    다시 돌아오고 싶다면 아래 명령어를 사용하면 된다.

    git switch -
    또는
    git checkout -

✅ 3. 원격저장소에 커밋

여기까지만 해도 혼자 버전 관리는 가능하지만 다른 개발자와 함께 버전을 관리하고 싶다면 (혹은 포폴용) github에 올려야 한다.

먼저 github에 레파지토리를 생성해준다.


여기서 터미널에git remote add origin 주소를 치고 로그인을 하면 성공적으로 원격저장소에 커밋이 된다.


✅ 4. 원격저장소에서 내려받기

올려봤으니 내려받기도 해봐야 한다.

clone

원격저장소에서 코드와 버전 전체를 내려받는것이 clone이다. clone을 하면 최신버전, 이전 버전들, 원격저장소 주소 등이 로컬저장소에 저장된다.

git clone https://~~~~

아주 간단하다.

그런데 이렇게하면 git레파지토리(mysite) 안에 .git과 README.txt가 현재 폴더에 저장되는 것이 아니라 mysite라는 폴더가 생성되고 그 안에 .git과 README.txt가 생성된다. 상관은 없지만 폴더가 복잡해진다.

이런점이 싫다면 git clone https://~~ .을 쳐주면된다. 차이점은 마지막에 한칸 띄고 . 을 사용하면 된다.

수정후 업로드

README.txt의 수정이 완료되고 다시 업로드를 하려면
git add README.txt
git commit-m "commit 내용"
git push origin master
를 순서대로 쳐주면 원격저장소의 내용이 수정된다.

이렇게 내가 업로드한 커밋을 B 개발자가 원격저장소에서 받아 로컬저장소를 갱신하려면
git pull origin master
명령어를 입력해주면 된다.


✅ 5. 협업의 시작 Branch

개발자 A, B가 동시에 작업을 해야하면 Branch의 사용이 필수적이라고 할 수 있다.

저기 보이는 master라는 브랜치가 main이라고 한다면 master브랜치에서 각자의 branch를 생성해 파일을 작업 후 다시 master브랜치로 합쳐줘야 동시에 작업할 수 있다. ( 물론 이렇게 해도 주의하지 않으면 각종 이유로 오류가 나긴한다.)

🥸 이외에도 많은 명령어와 방법들이 있지만 여기까지 알면 google의 도움으로 나머지는 해결할 수 있는것 같다. 다음엔 git의 원리에 대해 정리해보면 좋을것 같다!

0개의 댓글