Git & Github

Woo Hwukjun·2020년 11월 25일
0

2020.11.25

목록 보기
1/1

Git이란?

  • Version Control System(VCS)
  • 예를 들어 과제 1,2,3,4 그리고 과제 (최종) <-- 버젼관리 시스템이다.

코드 버전관리하는 이유?

  • 수정할때 마다 파일을 새로 만들면 관리가 힘들기 때문에
  • 언제든 이전 버전의 코드로 돌아갈수있기 때문에
  • 이력을 남기기 위해
  • 하나의 프로젝트를 두고 여러명의 개발자들이 협업할수 있음

Github이란?

  • Git을 사용한 프로젝트들의 저장소
  • 개발자들의 Social Network

Git vs Github

  • 깃은 인터넷이 필요가없다 로컬에서 할수있다.
  • 깃허브는 인터넷이 필요하다.
  • 즉 깃은 프로젝트의 버전관리를 도와주는 시스템이고 깃허브은 깃을 이용해 버전관리를 한 프로그램들을 모운 집합관리소다.

Git 실습 순서

1) $ mkdir git && cd git
하면 깃 폴더 만들고 바로 그폴더로 이동한다.(빠른 작업을 위해)
2) $ git init
Initialized empty Git repository in git folder
3) $ git clone [url]
4) $ git branch [name]
5) $ git status (틈틈히 status를 확인해줘야한다 특히 add 랑 commit할때)
6) $ vim hwukjunwoo.md (파일을 생성 .md파일 확장자다.)
7) $git status
예시) Untracked files:
(use "git add ..." to include in what will be committed)
hwukjunwoo.md
빨간색일때 추적을안한다. 추적을해야된다고 알려준다.
8) $git add . (<- 앞에 점을 생각해야한다. 추가해야되는 파일이 모두 추가가 된다.)
9) $git status
예) Changes to be committed:
(use "git rm --cached ..." to unstage)
new file: hwukjunwoo.md
10) $ git commit -m"hwukjunwoo file added"
예) [master (root-commit) 39cb12c] hwukjunwoo.md file added
1 file changed, 1 insertion(+)
create mode 100644 hwukjunwoo.md
11) $ git status
예) On branch master
nothing to commit, working tree clean
12) $ git log
commit 39cb12c117b6c683e46cbf8bcc65984318275a54 (HEAD ---> master)
Author: hwukjunwoo hwukjunwoo@gmail.com
Date: Wed Nov 25 14:54:52 2020 +0900
hwukjunwoo.md file added

Github

create a new repository
repository name
push : 깃허브에 푸쉬한다.
로컬저장소에 remote주소를 추가해준다.
13) $ git remote add origin https://github.com/hwukjunwoo/backend_15.git
14) $ git remote -v
origin https://github.com/hwukjunwoo/backend_15.git (fetch)
origin https://github.com/hwukjunwoo/backend_15.git (push)
15) $ git branch -M main
master가 main르로 바꾼다.
16) $ git push -u origin main
-u최초에 한번하면된다.
하면 로그인하면 푸쉬가 잘된다.

Pull request 수정본 받고 다시 올릴때

노란색은 아직 수정사항이 add가 다 안됬다.
초록색은 완벽히 push해도된다.

1) main에서 pull를 받는다.
git pull origin main
2) git checkout 내브랜치이름
3) 내브랜치에 메인에서 fetch한 내용을 merge합니다.
git merge main
git status

생성하기

새로운 로컬 저장소를 생성하기
$ git init [project_name]
저장소 가져오기
$ git clone [url]

브랜치 작업하기

로컬 브랜치 보기
$ git branch
//많이 사용해야하는 이유는 공간을 차지하지않고 그리고 it is easier to logically divide up work.
로컬과 원격 브랜치 보기
$ git branch -av
브랜치 변경하기
$ git checkout
브랜치 생성하기
$ git branch [name]
동시에 브랜치 생성 + 체크아웃
$ git checkout -b [your-branchname]
브랜치 삭제하기
$ git branch -d
원격 브랜치를 추적하는 새로운 브랜치 만들기
$ git checkout --track <remote/branch>
원격 브랜치 추적하기
$ git branch -u <remote/branch>
현재 커밋에 태그 달기
$ git tag

변경하기

파일의 변경 사항을 다음 커밋에 반영하기
$ git add [file]
모든 변경 사항을 다음 커밋에 반영하기
$ git add .
메시지와 함께 커밋하기
$ git commit -m "commit message"
모든 변경 사항을 반영하면서 커밋하기
$ git commit -a
마지막 커밋 수정하기(published commit에는 하지 말 것!)
$ git commit --amend

동기화하기

원격 저장소의 변경사항 가져오기
$ git fetch
원격 저장소의 변경사항을 가져오고 머지하기
$ git pull
원격 저장소의 변경사항을 가져오고 리베이스하기 (순서를 맞추기위해서)
$ git pull --rebase
원격 저장소에 변경사항 발행하기
$ git push
원격 저장소에 태그 발행하기
$ git push --tags

병합하기와 리베이스하기

병합하기
$ git merge
리베이스하기
$ git rebase

변경사항 저장하고 복원하기

임시로 변경사항 저장하기
$ git stash
임시 변경사항 복원하기
$ git stash pop
임시 변경사항 보기
$ git stash list

앞에 점이붙으면 숨김이다. (ex).git

profile
미래 개발자

0개의 댓글