차밍이

[Github] 완전기초 사용방법 : add, commit, push, pull 본문

Github

[Github] 완전기초 사용방법 : add, commit, push, pull

2020. 4. 12. 12:57
반응형

Git

Git은 분산형 버전관리 시스템(DVCS) 중 하나입니다. 최근 Git과 GitHub를 통해서 많이 사용되는 것 같습니다.

  • Github에 저장하는 것은 매번, 매버전을 모두 저장하고 upload하는 방식이 아닌 각 버전들의 차이 혹은 변경이력 을 저장하는 것입니다. 이를 통해서 훨씬 적은 용량으로 많은 버전 이력들을 저장할 수 있는 것입니다.

Git 사전 준비

Git을 사용하기 위해서는 Git의 commit을 남기는 사람에 대한 정보를 설정합니다.

한번 설정하면 컴퓨터에 자격증명 방식으로 계속 남아있어서 또 할 일은 잘 없습니다.

$ git config --global user.name '{이름}'
$ git config --global user.email '{이메일}'
  • 추후에 commit을 작성한 사람(author)로 저장된다.
  • email 정보는 github에서 활용하고 있는 email과 동일하게 설정하는 것을 추천한다.
  • 설정 내용을 확인하려면 아래의 명령어를 입력한다.

Git 기초 흐름

0. 저장소 설정

$ git init
  • git 저장소를 만들게 되면 해당 디렉토리 내에 .git/ 폴더가 생성된다.
  • git bash 에서는 (master) 라는 표기가 같이 등장한다.
  • 현재 작업 중인 브랜치를 의미한다.

1. add

  • 작업 위치(Working Directory 이하 WD) 폴더에 작업한 파일이 있을 경우 add를 통해서 staging Area로 옮길 수 있습니다. stagin Areacommit을 진행하기 전의 임시 저장된 상태 정도로 생각하면 될 것 같습니다.
  • 해당 폴더에서 작업 후 상황
  • # a.txt를 만든 상황 $ git status On branch master No commits yet # 트래킹 되고 있지 않은 파일들 # => git으로 버전을 남긴적이 없는 파일 Untracked files: # staging area에 포함시키려면, git add # (커밋될 파일 목록) (use "git add <file>..." to include in what will be committed) a.txt # 커밋할 내용 없지만, 트래킹 되지 않는 파일은 존재한다. # => WD O, Staging Area X nothing added to commit but untracked files present (use "git add" to track)
  • staging area에 추가
  • $ git add a.txt # a.txt 파일 $ git add myfolder/ # myfolder 폴더 $ git add . # 현재 디렉토리
  • 추가 후 상태 : status를 자주 살펴보면서 상태를 확인하는 것이 좋습니다.
  • $ git status # git의 상태를 확인 On branch master No commits yet # 새로 생성괸 것이 없으면 나오는 메세지 # 커밋될 변경사항들 (staging area) Changes to be committed: (use "git rm --cached <file>..." to unstage) # a.txt 새로 생성됨 new file: a.txt

2. commit

커밋 메시지는 현재 버전에 대한 내용을 명확하게 작성해야합니다.

현재 어느정도 commit 메세지에 대해서 사람들끼리 정해진 메세지 작성법이 있습니다. (참고 : https://meetup.toast.com/posts/106)

$ git commit -m '커밋메시지'

[master (root-commit) 41a723a] Init
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 a.txt
  • git log : 커밋 이력을 확인하기 위해서는 아래의 명령어를 입력한다.
  • $ git log commit 41a723a3626a9737a7eb822441f4ba0aede37d9d (HEAD -> master) Author: edutak <edutak.ssafy@gmail.com> Date: Fri Apr 10 10:45:22 2020 +0900 Init $ git log -1 # 최근 한개 커밋 $ git log --oneline # 간략한 로그 $ git log --oneline -1 # 최근 한개의 커밋을 간략하게

Git 상태 메시지

$ git status
# branch 정보
On branch master
Your branch is up to date with 'origin/master'.

# 커밋될 변경사항
# Staging area
Changes to be committed:
  # unstage => add를 취소하는 명령어(staging area -> WD)
  (use "git restore --staged <file>..." to unstage)
        modified:   cli.txt

# stage 상태가 아닌 변경사항
# Working directory
Changes not staged for commit:
  # WD => staging area
  (use "git add <file>..." to update what will be committed)
  # WD 작업 내용을 모두 삭제(되돌릴 수 없음.)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   a.txt

Git 원격저장소 활용(Github)

  • Github에 repository를 생성한다.

0. 원격 저장소 설정

  • 원격 저장소 설정
    • 원격저장소(remote)로 origin 이름으로 url 을 추가(add)
  • $ git remote add origin {__url__}
  • 원격 저장소 목록
  • $ git remote -v origin https://github.com/edutak/test-repo.git (fetch) origin https://github.com/edutak/test-repo.git (push)
  • 원격 저장소 삭제
    • origin 이름의 원격 저장소 설정을 삭제(remove - rm )
  • $ git remote rm origin

1. push

commit한 이력이 repository로 저장됩니다.

$ git push origin master
  • 현재 폴더를 그대로 업로드 하는 것이 아니라, 지금까지의 이력/버전(commit)을 push 하는 것이다.
  • Working directory, Staging area의 변경사항들은 원격저장소로 push 되지 않는다.
  • 따라서, push 전에 $ git status , $ git log 를 통해서 확인하는 습관을 가져야합니다.

2. pull

$ git pull origin master
  • 원격저장소 변경 사항(이력)을 받아옵니다.
  • 다른 작업 환경이나 위치에서 작업할 때, 혹은 공동 작업에서 타인이 commit해서 이력이 변경되었을 경우 등의 경우가 있습니다. 따라서, pull을 통해서 가져온 후, 작업을 진행하는 것이 좋습니다.

 

반응형

관련된 글 보기

Comments