[Git][1]Git
Programming/Git

[Git][1]Git

목차

- Git 개념

- Git 설치

- Git-test

 


Git 개념

 

사진 찍는 것과 비슷하다

 

사진 찍는 것과 비슷합니다.

 

Git init을 하게 되면 세 가지 영역을 담을 수 있는 공간이 마련이 되며

(git 폴더 생성)

사진을 찍을 수 있게 됩니다.

 

우리가 사진 찍을 때도 풍경은 시시각각 변합니다.

(workspace, 작업 폴더)

 

사진을 찍으면 이것을 add 한다고 하며, 사진이 남겨진 상태에서

add 하게 되면 그 이전 사진을 덮어 씌우는 것처럼 git에서도 파일이 덮어써집니다. 

 

그래서 add 하고 나서 commit 하여 지정된 파일의 분기를 만듭니다. (점을 찍는 것)

(commit 은 사진첩에 사진을 옮겨 담는 것)

 

Git에서의 branch

 

그래서 Git에서 분기를 할 수 있게 여러 branch를 만들 수 있습니다.

 

이렇게 하면 여러 버전을 관리하게 되어 개발의 안정성을 높입니다.

테스트 버전이나 여러 코드의 변화를 주면서 완성된 코드를 merge 할 수 있습니다. 

 

front 작업back 작업을 분리하여 일을 하고 나서 나중에 merge 하여 생산성을 높일 수 있습니다.

 

주의할 점

 

Git에서 프로젝트를 할 때 pull 하지 않고 작업을 했을 때 형상이 달라서 push가 되지 않습니다.

그렇지만 Git에서 다시 pull을 하고 push를 하게 되면 형상이 맞아서 push 할 수 있게 됩니다. 

 


Git 설치

 

Git 설치

 

Setup

 

Next 쭉 하시면 됩니다.

 

git-test 폴더를 만들고

 

Git Bash Here

 

Git Bash Here을 합니다

 

Git terminal open

 

git init으로 git 폴더를 만들어줍니다.

 

git 폴더 생성

 

폴더에 보이지 않는데 숨긴 항목을 체크해주면 아래처럼 보이게 됩니다.

 

 

 

hello.txt 파일을 git-test 폴더에 만들어 줍니다.

 

그리고 이것을 커밋하기 위해서

 

git add.로 먼저 추가를 합니다. (사진을 찍는 것)

 

git에서 폴더 전체를 add 하려면 ". "을 붙이면 됩니다. 

git에서 하나씩 잡으려면 파일명을 쓰면 그 파일만 add 할 수 있습니다.

 

마지막으로 

git commit -m "1. 파일 생성 완료"를 타이핑하면 commit이 됩니다.

 

입력하고 실행

 

만약에 실행하고 나서

Please tell me who you are.이라는 문장이 뜨면

 

Run 하라는 대로

 

git config --global user.email "you@example.com"

git config --global user.name "Your Name"

 

을 입력합니다.

 

컴퓨터에 등록하는 거라서 이메일과 이름을 작성하셔도 됩니다.

위와 같이 써도 상관없고요.

 

Tips 

방향키 위를 누르면 히스토리가 남아있어서 enter 쳤던 것들을 바로 불러올 수 있습니다

 

commit 되는 모습

 

입력하고 나서 제대로 commit 된 모습입니다

 

commit 한 상태로

 

hello.txt

hello.txt에 (2) 파일 수정 완료를 타이핑하여 파일을 변경시켜봅니다.

 

git status

 

변경된 점은 git에서도 확인할 수 있는데요,

 

git status 명령어를 치면

modified: hello.txt로 적혀있는 변경된 파일을 폴더 내에서 찾아서 터미널에 띄어줍니다.

(현재 상태 확인)

 

그리고 아까처럼

git add. 를 하고

git commit -m "2. 파일 수정 완료"

하면 커밋이 됩니다.

 

git add를 하지 않으면 commit 되지 않습니다.

마치 우리가 사진을 찍고 사진첩에 보관하는 것처럼

git를 사용해 우리가 등록해야지(add) 옮길(commit) 수 있습니다.

 

파일이 변경된 모습

git log 명령어를 사용을 하면

 

commit 기록을 확인할 수 있습니다

 

git에서 commit 한 기록들을 볼 수 있게 됩니다.

여기서 (HEAD)의 위치를 변경시키면 우리가 전에 commit 했던 파일들을 다시 볼 수 있습니다.

 

마치 사진을 찍고 보관한 사진첩에서

우리가 전에 찍었던 사진을 클릭해서 볼 수 있는 것과 같습니다.

 

 

새로 bye.txt라는 파일을 만들면

 

 

이것도 git status로 변경된 것을 확인할 수 있습니다.

 

bye.txt의 상태가 변화하였음

 

git add를 하고 git status로 확인을 해보면 색상이 변경된 것을 확인할 수 있습니다.

 

사진을 찍어서 그 전과 상태가 달라진 것입니다.

초록색으로 글씨의 색이 변했다는 것은 파일이 등록되었다는 것(사진이 찍혔다는 것)입니다.

 

add 하지 않은 상태는 글씨의 색이 빨간색이지만 

add. 하고 나서의 status의 상태는 초록색으로 변화했으므로 git에 새로운 파일로 add 된 상태입니다.

 

 

이것을 커밋해봅시다. 

그리고 status를 치면

 

동기화 된 상태 - 세 박스가 같음

 

다음과 같이 뜹니다

working tree clean, 즉 지금 가장 최근에 커밋한 상태에서 변화가 없다는 뜻입니다.

 

 

우리가 branch에서 commit 한 경로로

돌아갈 곳을 알려면 log를 봐야 합니다

 

git rest --hard 명령어를 쓰면 4글자만 commit id값을 써도 그 전 Head로 이동할 수 있게 됩니다.

 

그전으로 돌아간 모습

 

HEAD is now at aa313 af 1. 파일 생성 완료

-> HEAD가 이동한 모습입니다.

 

reflog명령어는 전 log로 돌아갈 수 있게 해 줍니다.

(사진첩을 다시 펼쳐보는 것과 같음)

 

git logheader의 위치에 따라서 계속 봐 뀌지만 

git reflogcommit 한 모든 log를 보여줍니다.

 

log에 하나만 남아있다

 

돌아간 상태(header로 전 버전으로 이동한 상태)에서 log를 치면

여태까지 commit 한 log가 없어진 것인 확인할 수 있습니다.

 

하지만 reflog를 쓰면 모든 commit을 볼 수 있습니다.

 

git log와 git reflog의 차이

 

 

branch(가지)를 생성합니다

 

git branch apple 명령어를 사용해서

apple이라는 브런치를 만들고 거기에 새로운 text파일을 만듭니다.

 

apple branch 생성

 

git branch 명령어로 현재 어느 branch(가지)에 있는지 확인합니다.

 

현재 branch

 

apple branch로 이동을 해줍니다.

 

git checkout apple

git checkout 브런치명

 

현재 branch은 apple

 

애플 가지에서 새로운 text파일을 만들고 저장해줍니다.

 

그리고 git add. 합니다. (사진을 찍는 행위)

 

새로운 파일이 추가된 모습과 git add .

 

git commit -m "4. 애플 사진"을 하여 커밋합니다.

 

지금 가지가 두 개로 나눠진 상태에서 apple branch에서 작업을 하는 중입니다.

 

그리고 로그를 확인해보면 (git log)

그전에 했던 커밋들을 모두 확인할 수 있습니다.

 

즉, 가지를 타고 내려오는 로그들을 모두 확인할 수 있는 것!!!!

 

가지타고 내려온 log들

 

한번 master branch로 이동해서 log를 확인해 봅시다.

 

git branch - master

 

git checkout master 입력

git branch

-master

 

마스터로 이동한 상태에서 git log를 치면

apple branch에서 만든 4. 애플 사진 commit  로그에 남아 있지 않습니다.

 

그 이유는 branch를 나누고 merge 하지 않아서 그런 것입니다.

 

text파일을 생성하지 않은 다른 가지를 선택을 하고 로그를 보았기 때문에

다른 branch에서 생성했던 로그가 보이지 않습니다.

 

log in master

 

master에서도 apple가지의 줄기를 보려면 merge를 해야 합니다.

branch로 나누어져 있기 때문에 merge를 통해서만 master내에서 apple를 볼 수 있는 것입니다.

 

즉, 나누어진 가지를 합쳐야 함!!!

 

가지를 합치기 위해서는 master branch로 이동을 해야 합니다.

master로 최종 배포를 하며, master가 최초로 생기는 가지며 마지막까지 남아 있는 가지이기 때문입니다.

 

 

 

Merge

 

1. 현재 브런치가 master

2. 명령어 git merge 다른 브런치명

 

git status로 확인후 merge

 

git status로 현재 branch의 위치와

add를 하지 않았거나

add commit하지 않은 것들을 확인하고

 

git merge apple로 

apple 가지를 합쳐줍니다.

 

합쳐진 모습으로 apple 가지의 파일인 test1.txt가 추가되어 있는 것을 확인할 수 있습니다.

 

master branch, git log

 

git log로 확인해 봤을 때 log도 합쳐져 있는 것을 확인할 수 있습니다!

 


 

 

'Programming > Git' 카테고리의 다른 글

[Git][4]Conflict 해결  (0) 2021.08.13
[Git][3]Merge하기  (0) 2021.08.12
[Git][2]Github연결  (0) 2021.07.04