차밍이
[Github] 완전기초 사용방법 : add, commit, push, pull 본문
반응형
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 Area
는commit
을 진행하기 전의 임시 저장된 상태 정도로 생각하면 될 것 같습니다. - 해당 폴더에서 작업 후 상황
# 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
을 통해서 가져온 후, 작업을 진행하는 것이 좋습니다.
반응형
'Github' 카테고리의 다른 글
[Github] 기초 내용 총정리 -3- git remote 원격 저장소 생성 추가 (0) | 2021.08.21 |
---|---|
[Github] 기초 내용 총정리 - 2 - Git 설치하기 및 초기 설정, git config (0) | 2021.08.21 |
[Github] 기초 내용 총정리 - 1 - Git이란? Git의 특징 (0) | 2021.08.20 |
[Github] master와 branch 병합 시나리오 - 충돌 시 해결 방법 (0) | 2020.04.14 |
[Github] 독립된 작업을 위한 Branch 기초 명령어 (0) | 2020.04.13 |
관련된 글 보기
Comments