목차
- Git 개념
- Git 설치
- Git-test
Git 개념
사진 찍는 것과 비슷합니다.
Git init을 하게 되면 세 가지 영역을 담을 수 있는 공간이 마련이 되며
(git 폴더 생성)
사진을 찍을 수 있게 됩니다.
우리가 사진 찍을 때도 풍경은 시시각각 변합니다.
(workspace, 작업 폴더)
사진을 찍으면 이것을 add 한다고 하며, 사진이 남겨진 상태에서
또 add 하게 되면 그 이전 사진을 덮어 씌우는 것처럼 git에서도 파일이 덮어써집니다.
그래서 add 하고 나서 commit 하여 지정된 파일의 분기를 만듭니다. (점을 찍는 것)
(commit 은 사진첩에 사진을 옮겨 담는 것)
그래서 Git에서 분기를 할 수 있게 여러 branch를 만들 수 있습니다.
이렇게 하면 여러 버전을 관리하게 되어 개발의 안정성을 높입니다.
테스트 버전이나 여러 코드의 변화를 주면서 완성된 코드를 merge 할 수 있습니다.
front 작업과 back 작업을 분리하여 일을 하고 나서 나중에 merge 하여 생산성을 높일 수 있습니다.
Git에서 프로젝트를 할 때 pull 하지 않고 작업을 했을 때 형상이 달라서 push가 되지 않습니다.
그렇지만 Git에서 다시 pull을 하고 push를 하게 되면 형상이 맞아서 push 할 수 있게 됩니다.
Git 설치
Next 쭉 하시면 됩니다.
git-test 폴더를 만들고
Git Bash Here을 합니다
git init으로 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 한 상태로
hello.txt에 (2) 파일 수정 완료를 타이핑하여 파일을 변경시켜봅니다.
변경된 점은 git에서도 확인할 수 있는데요,
git status 명령어를 치면
modified: hello.txt로 적혀있는 변경된 파일을 폴더 내에서 찾아서 터미널에 띄어줍니다.
(현재 상태 확인)
그리고 아까처럼
git add. 를 하고
git commit -m "2. 파일 수정 완료"
하면 커밋이 됩니다.
git add를 하지 않으면 commit 되지 않습니다.
마치 우리가 사진을 찍고 사진첩에 보관하는 것처럼
git를 사용해 우리가 등록해야지(add) 옮길(commit) 수 있습니다.
git log 명령어를 사용을 하면
git에서 commit 한 기록들을 볼 수 있게 됩니다.
여기서 (HEAD)의 위치를 변경시키면 우리가 전에 commit 했던 파일들을 다시 볼 수 있습니다.
마치 사진을 찍고 보관한 사진첩에서
우리가 전에 찍었던 사진을 클릭해서 볼 수 있는 것과 같습니다.
새로 bye.txt라는 파일을 만들면
이것도 git status로 변경된 것을 확인할 수 있습니다.
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 log는 header의 위치에 따라서 계속 봐 뀌지만
git reflog는 commit 한 모든 log를 보여줍니다.
돌아간 상태(header로 전 버전으로 이동한 상태)에서 log를 치면
여태까지 commit 한 log가 없어진 것인 확인할 수 있습니다.
하지만 reflog를 쓰면 모든 commit을 볼 수 있습니다.
새 branch(가지)를 생성합니다
git branch apple 명령어를 사용해서
apple이라는 브런치를 만들고 거기에 새로운 text파일을 만듭니다.
git branch 명령어로 현재 어느 branch(가지)에 있는지 확인합니다.
apple branch로 이동을 해줍니다.
git checkout apple
git checkout 브런치명
애플 가지에서 새로운 text파일을 만들고 저장해줍니다.
그리고 git add. 합니다. (사진을 찍는 행위)
git commit -m "4. 애플 사진"을 하여 커밋합니다.
지금 가지가 두 개로 나눠진 상태에서 apple branch에서 작업을 하는 중입니다.
그리고 로그를 확인해보면 (git log)
그전에 했던 커밋들을 모두 확인할 수 있습니다.
즉, 가지를 타고 내려오는 로그들을 모두 확인할 수 있는 것!!!!
한번 master branch로 이동해서 log를 확인해 봅시다.
git checkout master 입력
git branch
-master
마스터로 이동한 상태에서 git log를 치면
apple branch에서 만든 4. 애플 사진 commit 이 로그에 남아 있지 않습니다.
그 이유는 branch를 나누고 merge 하지 않아서 그런 것입니다.
text파일을 생성하지 않은 다른 가지를 선택을 하고 로그를 보았기 때문에
다른 branch에서 생성했던 로그가 보이지 않습니다.
master에서도 apple가지의 줄기를 보려면 merge를 해야 합니다.
branch로 나누어져 있기 때문에 merge를 통해서만 master내에서 apple를 볼 수 있는 것입니다.
즉, 나누어진 가지를 합쳐야 함!!!
가지를 합치기 위해서는 master branch로 이동을 해야 합니다.
master로 최종 배포를 하며, master가 최초로 생기는 가지며 마지막까지 남아 있는 가지이기 때문입니다.
Merge
1. 현재 브런치가 master
2. 명령어 git merge 다른 브런치명
git status로 현재 branch의 위치와
add를 하지 않았거나
add후 commit하지 않은 것들을 확인하고
git merge apple로
apple 가지를 합쳐줍니다.
합쳐진 모습으로 apple 가지의 파일인 test1.txt가 추가되어 있는 것을 확인할 수 있습니다.
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 |