Git (1)

Bonnie Ryu·2020년 9월 29일
0

🙋‍♀️ 알아볼 내용

  1. Git이란
  2. 버전관리
  3. Git과 Github 차이점
  4. Git 기본 명령어(1)

1. git이란

Git : 분산 버전 관리 시스템

2. 버전관리

버전관리(VCS : Version Control System)란 : Git에서는 소스 코드가 변경된 이력을 쉽게 확인할 수 있고, 특정 시점에 저장된 버전과 비교하거나 특정 시점으로 되돌아갈 수도 있다. 코드 수정에 따른 위험성을 줄일 수 있다.

3. Git과 Github 차이점

Git
▪ 로컬에서 관리되는 버전관리 시스템
▪ 소스코드 수정에 따른 버전을 관리해주는 시스템

Github
▪ 클라우드 방식으로 관리되는 버전 관리 시스템(VCS)
▪ 자체 구축이 아닌 빌려쓰는 클라우드 개념

4. Git 기본 명령어(1)

🍥 초기화 작업

현재 위치에 프로젝트 파일을 생성하고 작업할 것이다. 라고 선언하는 의미

git init : 저장소 생성

testfolder라는 폴더를 생성 후 git bash에서 git init을 해주었다.

$ git init
Initialized empty Git repository in C:/coding/testfolder/.git/

git init을 하면 해당 폴더에 .git이라는 폴더가 생성된다.

🍥 스테이징 작업

가상의 임시저장 공간, git add를 하고 commit을 하기 전에 파일이 위치하는 공간

git status : 현재 상태를 보여주며 변경 사항을 체크할 수 있다.

어떤 파일도 없는 상태에서 git status를 하면

$ git status
On branch master // master 브랜치에 있고
No commits yet // 아직 커밋 전이고
nothing to commit (create/copy files and use "git add" to track) // 커밋할 파일이 없다.

현재의 상태를 위와 같이 알려준다.

git add 파일명: 폴더 내 해당 파일만 스테이징(add)
git add . 폴더 내 전체 변경 사항 스테이징(add) (같은 의미로 git add * 또는 git add -A)

index.html 파일을 생성하고 코드입력 후 add하였다.

$ git add index.html

이후 git status를 하면

$ git status
On branch master
No commits yet
Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   index.html

위와 같이 변경사항을 확인할 수 있다.

🍥 커밋 작업

commit : 폴더의 변경 내용을 저장하는 단위

git commit : 커밋은 '의미 있는 변동사항'을 묶어서 만든다. 먼저 스테이지 상태에 두어야만(add를 해야만) 커밋을 할 수 있다.

작성 순서 : git commit -m "변동사항 기입"

변동사항 기입란에 first commit라고 코멘트하고 커밋하였다!

$ git commit -m "first commit"
[master (root-commit) 3d09bf3] first commit
 1 file changed, 11 insertions(+)
 create mode 100644 index.html

git commit --amand : 커밋을 새로하지 않고 이전 커밋에 변경사항을 추가하고 싶을 때 사용하는 옵션

로컬에 폴더를 생성하고 github과 같은 원격저장소에 커밋을 만든 뒤 원격으로 내용을 업로드하는 것을 푸시(push)라고 한다.

명령어 사용은 git push

✍ 그전에 폴더 최초 생성시 폴더와 github 레포지토리를 연동시켜주어야 한다.
연동시 명령어는 git remote add origin 해당 레포지토리 주소

$ git remote add origin https://github.com/ryuwisdom/ThisIsTest.git

이후에 git push!

but, 최초 푸시할때 명령어도 따로 있다.

git push -u origin master

Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Delta compression using up to 8 threads햣 
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 378 bytes | 189.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/ryuwisdom/ThisIsTest.git

* [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

위와 같이 github에 업로드 된 것을 알 수 있다.

이후부터 이 파일에서 작업하고 커밋 후 push할 때에는 git push만 입력하면 끝!

보통 혼자 관리하는 파일에서는 push까지의 작업이면 충분했다. (지금의 나...)

🍥 로그 작업

커밋된 결과보는 단계

git log : 커밋된 리스트를 보고 싶을때 사용

> $ git log
> commit 34dfe5ecf87e8fc9290a8ec1545b50193cee1d33 (HEAD -> master, origin/master)
> Author: jihyeryu <bonnie.jr54@gmail.com>
> Date:   Tue Sep 29 13:04:19 2020 +0900
>
>     second commit
>
> commit 3d09bf3da0ac1aad99b3d07aa1fe2485a213f474
> Author: jihyeryu <bonnie.jr54@gmail.com>
> Date:   Tue Sep 29 12:40:14 2020 +0900
>
>     first commit

git show : 커밋에 변경 내용이 반영되었는지 보고 싶을 때 사용

> $ git show
> commit 34dfe5ecf87e8fc9290a8ec1545b50193cee1d33 (HEAD -> master, origin/master)
> Author: jihyeryu <bonnie.jr54@gmail.com>
> Date:   Tue Sep 29 13:04:19 2020 +0900
>
>     second commit
>
> diff --git a/style.css b/style.css
> new file mode 100644
> index 0000000..f71ba51
> --- /dev/null
> +++ b/style.css
> @@ -0,0 +1,3 @@
> +body {
>
> * background-color: pink;
> +}
> \ No newline at end of file

🍥 브랜치 작업

현재 작업과 성격이 다른 작업을 할 때 브랜치를 만든다. 깃은 기본적으로 main이라는 이름의 브랜치를 하나 가지고 있다.

📌 10/1일부터 master-> main으로 기본 브랜치명 변경

git branch

$ git branch 
* main

현재 작업 내용과 목적이 다른 작업을 하기위해 브랜치를 만들어보자.

작성 순서는 git branch '생성할 브랜치 명' '기준 브랜치 명' 이고
기준 브랜치 명은 생략 가능하다.

$ git branch bonnie main

$ git branch
  bonnie
* main

bonnie 브랜치가 추가되었다. 하지만 여전히 지정되어 있는 것(* 표시가 있는 것)은 main이다.

새로 만든 브랜치로 이동하는 것을 체크아웃(checkout)이라고 표현한다.

작성순서는 git checkout '생성한 브랜치 명'

$ git checkout bonnie
$ git branch

* bonnie
  main

브랜치가 변경되었다.

잠깐🙂
-b 옵션을 사용해 브랜치를 만들면서 체크아웃을 할 수도 있다.🤗
작성순서 : git checkout -b '생성할 브랜치 명'

🍥 병합 작업

브랜치한 파일에서 작업이 끝나고 add와 commit 까지 한 후, 다시 기존파일에서 브랜치하여 작업한 파일과 합쳐야 하는데 이것을 병합(merge)이라고 한다.

main파일인 main 브랜치로 돌아간 뒤(이동)
git checkout main

작성순서 : git merge '작업한 브랜치 명'

$ git merge bonnie
Updating 34dfe5e..f58626d
Fast-forward
 index.html | 2 ++
 1 file changed, 2 insertions(+)

merge 완료!

나머지 git 명령어들은 2탄에서 만나요😁

profile
Ryuwisdom

0개의 댓글