본문 바로가기
DevOps/Git,Github

[git,github] 2) git, github(깃,깃허브) 실습하기 (로컬 저장소, 원격 저장소에 저장 및 형상 관리 방법)

by 스파이디웹 2021. 10. 26.
728x90

이번 시리즈는 총 3개의 시리즈로 이뤄져 있습니다.

1. git,git hub의 개념, 명령어, 설치와 가입 및 리포지토리를 생성하기

2. git, git hub 실습

3. git, github을 이용한 협업

 

그 중 이번 포스트는git, git hub 실습을 해보겠습니다.

 

1편 개념, 명령어, 다운로드, 가입, 리포지토리 생성

https://spidyweb.tistory.com/210

 

[git,github] 1) git, github(깃,깃허브) 개념,명령어,다운로드, 가입 총 정리

이번 시리즈는 총 3개의 시리즈로 이뤄져 있습니다. 1. git,git hub의 개념, 명령어, 설치와 가입 및 리포지토리를 생성하기 2. git, git hub 실습 3. source tree(형상관리 GUI 도구) 사용법 그 중 이번 포스트

spidyweb.tistory.com


1. Git을 이용한 버전관리 실습

1) 사용자 등록

  • 저장하고 싶은 파일이 있는 디렉토리에 우클릭 -> Git bash로 터미널을 실행시킵니다.
  • git config --global user.email "[이메일주소]" email을 등록
  • git config --global user.name "[이름]" name을 등록

2) Git 저장소 생성

 

  • Git init: master branch가 생성되고 git bash 현재 폴더 명에 branch 이름(master)이 추가됩니다.
  • 실제로는 .git이라는 숨김 폴더가 해당 폴더에 생성되고 git관련 파일들이 생성됩니다.

3) stage에 올리기

  • Git add:  현재 폴더의 파일들과 하위 폴더의 파일 모두를 저장할 대상으로 지정합니다.
  • 현재 디렉토리에 있는 파일을 index에 올립니다(스테이징 합니다)(스테이지에 올립니다.)
  • 파일 하나하나를 지정할 수도 있습니다.
  • . 은 옵션이고, -A를 사용해도 동일하게 모든 파일로 지정됩니다.

4) stage에 올라간 상태 확인

  • git status: stage에 올라간 파일과 안올라간 파일을 보여줍니다.

5) stage에 올라간 파일 지우기

    • git rm: stage에 올라간 파일을 지웁니다.
    • --cached: index에 추가된 파일을 staging area에서 제외(working directory), 파일은 유지
    • -f, force: 삭제하려는 파일의 내용이 브랜치 끝 부분에서의 내용과 다를 경우 강제 삭제
    • --ignore-unmatch: 삭제하려는 파일이 없을 때 발생하는 에러 무시

  • git reset <옵션> <돌아가고싶은 커밋>: 파일이 스테이징 영역에서 HEAD commit에 있던 상태로 단순하게 리셋
  • --hard: 돌아가려는 이력이후의 모든 내용을 지워 버립니다
  • --soft: 돌아가려 했던 이력으로 되돌아 갔지만, 이후의 내용이 지워지지 않고, 해당 내용의 인덱스(또는 스테이지)도 그대로 있습니다. 바로 다시 커밋할 수 있는 상태로 남아있는 것
  • --mixed: 이력은 되돌려집니다. 이후에 변경된 내용에 대해서는 남아있지만, 인덱스는 초기화 됩니다. 커밋을 하려면 다시 변경된 내용은 추가해야 하는 상태

5) commit 하기

  • git commit -m "메세지" : 스테이지에 올라간 파일을 commit 한다.(stage에 파일이 올라가 있어야한다.)
  • Commit이 세이브 개념,-m은 저장과 동시에 메세지를 남긴다는 옵션이고, 사실 말이 옵션이지 필수

6) commit 한 list,log 보기, 과거 commit으로 돌아가기

  • git log --oneline: 현재 저장된 commit list를 보여준다.

  • git reset: 과거 commit으로 돌아가고 싶을 때 사용

7) 로컬 저장소(git)→원격 저장소(git hub) push하기

 

  • Github 계정 생성 후에 repository를 만들고 나면 code에 해당 repository URL이 나와 있습니다.

  • git remote add origin [git 온라인 저장소 주소] - origin에 온라인(remote) 저장소 주소를 등록(add)합니다.

  • git push -u origin master - origin에 master branch를 업로드합니다.
  • Push는 로컬저장소의 내용을 원격저장소에 반영하는 작업입니다

sign in 인증절차를 걸치고나면

push 작업이 완료되었습니다.

github(원격 저장소)에도 반영되었습니다.

8) git clone(남의 원격 저장소에서 소스코드 내려받기)

  • 원하는 소스코드가 저장 되어 있는 repository에 가서 code -> Download ZIP으로 직접 내려 받는 방법

  • 터미널을 통해 내려 받는 방법

파일(소스코드)을 내려받을 폴더를 지정하여 git bash를 연 뒤, git init합니다.

git clone “[git repository 주소]”

9) 원격 저장소의 최신 file 현행화시키기

git pull [git repository 이름][브랜치 명]

  • Origin 의 변경사항 현행화시키기
  • origin은 원격저장소의 이름을 뜻하고 master는 현재 브랜치를 뜻합니다.
  • 다른 사람이 같은 원격저장소의 python file을 수정해 둔것을 local에서 현행화시킬 때 사용(원격저장소의 최신 버전을 로컬저장소에 반영시키는 작업)
  • git clone으로 받은 python file에 print("pulltest")한 줄을 추가시켜서 git hub에 반영해보겠습니다(위와 같은 방식으로 원격 저장소에 반영)

  • 현재 처음 print()문 한줄 만 있던 algorithm 폴더에는 원격 저장소의 최신 python file이 적용되지 않은 상태입니다.(git pull origin master 로 반영시키기)

  • 반영 된 python file 의 모습

10) git branch 생성 및 사용을 통한 형상관리

branch(브랜치):

  • 하나의 프로젝트를 여러 갈래로 나누어서 관리
  • 각각의 독립된 branch에서 마음대로 소스코드를 변경하여 작업 한 후 원래 버전과 비교하여 또 하나의 새로운 버전을 만들어 냄

git branch 생성하기

  • git branch branch이름

git branch 확인

  • git branch

생성한 branch로 이동하여 작업하기

  • git checkout 브랜치이름

git branch 삭제하기

  • git branch -d 브랜치이름

생성한 branch를 repository에 push하기

  • git push

  • 현재 원격 repository에는 master branch 밖에 없는 상태이므로, test branch로 이동하여 push를 하면 오류가 발생합니다.
  • local repository를 remote repository로 처음 remote할 때는 --set-upstream 옵션을 줘야 tracking 정보 설정이 되어 git push만 사용해도 push가 됩니다.

추가된 branch1

  • python file print("branchtest")를 추가한 후 branch1에 반영시켜봅시다.

git add gittest.py (스테이지에 올리기)

git commit -m "third commit" (커밋하기)

git push origin branch1 (원격저장소 origin에 branch1이름을 가진 branch를 push하기)

git branch merge

  • branch의 상태를 합병시킬때 사용
  • 새로운 파일을 작성하여 test branch에서 git add 새로운파일 git commit –m “메세지”커밋까지 완료 시킵니다.

  • master branch로 이동 및 파일 확인(branch1에서 add 및 commit했던 파일이 없는 것을 확인)

  • test branch에서 작업하였던 파일을 master에 merge및 확인합니다. git merge branch1

  • git push origin master를 통해 원격 저장소에 합병된 master브랜치 내용 올리기


2. github 다른 사람들과 협업하는 방법

원격 저장소에 다른 사용자를 초대해서 협업하는 방법

settings -> manage access -> invite a collaborator

 

728x90

댓글