일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Ajax
- 게시판댓글
- @RunWith
- 스토리지기본
- 자료구조
- lombok
- 크리스탈레포트누끼
- 크리스탈레포트그림
- EC@
- jdbc연결안됨
- fcmwebpush
- 크리스탈레포트이미지
- git
- 롬복
- 추상클래스
- 크리스탈리포트이미지
- JDBC
- ResponseBody
- 오라클오류
- RequestBody
- 크리스탈리포트이미지삽입
- 타임존
- api문서만들기
- 이미지누끼
- 서버기본
- 타임존설정
- import안될때
- IT기본지식
- openaddressing
- 서블릿용어
- Today
- Total
엠마의 개발공부일지
git과 github 처음시작하기 본문
git의 기본이론은 알지만 이론만 안다
그래서 다시공부해본다
이번엔 간단한 실습과 함께!👊
📑 git
work tree | index(stage) | local repository |
폴더 | 가상공간(일부 수정된 파일만 저장위해) | git이 모든 버전을 저장하는 공간 |
- git으로 버전관리방법 : TortoiseGit, git-bash 두가지가 가능하지만 난 git-bash로 콘솔을 사용하겠다.
🖥콘솔로 git 관리하기
- 한국어 포함된 파일명일경우 "\346\226\260\350\246..."로 표기됨
- 한국어를 올바르게 표현하려면 git bash에 "git config --global core.quotepath off" 입력
📌새 저장소 만들기
1. 새 폴더를 만들어 거기서 git bash 실행 후 "git init"
그럼 폴더에 .git이라는 안보이는 파일이 생김(난 안보이는 파일도 보이게 해놔서 보임)
이제 이 폴더는 git관리안에 있는 폴더가 됨
2. 적당한 폴더를 하나 만들어서 내용추가해보자
3. 현재 git상태 확인하면 아래와 같다
"untracked files" : git이 내가만든 텍스트파일의 존재를 알아채지 못함
4. 인덱스에 staging(인덱스로 파일을 올리는 행위)하여 git이 파일을 알아채게 하자
파일이름은 확장자까지 모두 표기해야한다.
5. 현 상태를 조회시 아직 커밋이 안되어있으며, new file에 staging한 파일을 git이 알아챘다
그럼 커밋(저장소에 저장)할 준비가 모두 끝남
6. 커밋메세지를 작성하여 커밋하기. 그리고 현상태 조회하기.
7. 저장소에 변경된 내역을 조회
노란색 : 커밋아이디(고유ID)
Author : 내 이름과 이메일이 들어감(누가 커밋한건지 기록됨)
맨 아래 : 커밋메세지
(이렇게 표기가되어 쌓여가기 때문에
나중에 커밋내역조회했을때에도 왜 커밋한건지 알아보려면 커밋메세지를 잘 작성해야함)
📌브랜치만들기
팀작업을 하거나, 새로운 시도를 해보고싶다면 브랜치(가지)를 하나 더 만들어서, 그 브랜치에서 작업한다.
1. issue1 이라는 브랜치를 만든다
브랜치를 만든 이 순간의 파일내용을 간직한 채로 issue1이라는 브랜치가 하나 더 생김
2. 현재 브런치를 확인한다.
현재 나는 master브랜치 위에 있었던것이다.(초록색 별표시)
이상태에서 파일안에 내용을 추가하고 커밋하면 master브랜치 위에서 가지가 뻗어나가는 것이다.
내용을 추가하여 세번째 커밋을 했다. 이때 (master)브랜치라고 표시가되어있다.(첫줄맨끝)
3. 아까 만든 issue1브랜치로 옮겨가본다
4. 이 상태에서 텍스트파일을 열어서 확인해보면 두번째 커밋까지만 작성되어있음.
왜냐면 두번째 커밋까지 하고 issue1이라는 브랜치를 만들어서 빼놨으므로
이 브랜치로 옮겨가보면 두번째 커밋까지 작성되어있는게 맞다.
이렇게 브랜치를 사용하거나 checkout을 사용해서 과거이력으로도 돌아갈 수 있다. 이것이 버전관리이다
(커밋할때마다 모든 저장내역이 커밋메세지와 저장되고 각각의 커밋순간의 파일상태로 돌아갈 수 있다)
5. issue1브랜치에서 내용추가하여 다시 커밋
내용추가시 .(점)을 사용하면 수정된 모든 파일을 스테이징 함을 의미.
그리고 커밋내용을 확인
issue1브랜치는 master에서 두번 커밋하고 파생되어 나온 브랜치이므로
지금까지 커밋내역은 아래와 같다.
📌브랜치 병합하기
현재 내가 사용하고있는 브랜치 위에 병합하고싶은 브랜치를 가져와서 합치는것
그러므로 병합이 필요한 브랜치로 이동해서(checkout사용) 가져올 브랜치를 머지한다.
1. 머지방법
나는 master에 있고, 여기에 issue1브랜치를 merge할것이다.
허나 merge했더니 conflict(충돌)되었다.
해당 파일을 열어보니 현재브랜치(HEAD)와 issue1브랜치의 내용이 다르기때문에
어떻게 파일을 저장할것인지 정해서 커밋(저장)해 줘야한다.
아래와 같이 수정후 다시 커밋(이 내용으로 저장하겠다를 의미)
2. 다쓴 브랜치는 삭제한다.
현재 브랜치목록을 보니 issue1은 삭제되고 master만 남았다.
📌 동시에 여러개 작업하기
브랜치 issue2,3을 만들고 issue2로 이동하여 브랜치 목록을 조회
issue2브랜치에서 문구 추가(마지막문구)
커밋후 issue3로 이동후 문구추가(마지막 문구)
issue3브랜치에서 위와같이 내용추가 후 커밋해줌. 현재 브랜치의 위치는 issue3
master로 이동해서 차례대로 issue2, issue3병합하기
issue2의 내용을 merge하기
issue2에서 추가한내용이 master에 merge됨
issue3를 master에 merge
충돌난 부분을 정리해주면 issue3내용도 들어와 있는걸 확인가능
현재 master브랜치에 issue2,3모두 merge완료.
이상태를 다시 커밋!
📌현재까지 commit상황을 한번에 보기
git log --pretty=oneline --all --graph
* : 커밋된 포인트를 표시함
브랜치를 만들어서 그 브랜치로 checkout(옮겨가서)해서 새로 커밋해가면 새 가지가 생기고
merge를 하면 가지들이 하나의 가지로 합쳐짐을 확인가능
📌git-hub에 연결하기
이부분을 어려워했는데, 아주 간단하다.
딱 3단계의 절차를 거치면 완료!
1.
git-hub에 새 repository를 만든다
저장소이름만 입력하고 Create repository클릭!
2.
위의 버튼을 누르면 나오는 화면이다.
이 화면은"git - github를 연결하기위해 git-bash에 작성해야하는 명령어"이다
두번째 문단에 첫번째 문장을 git bash창에 입력한다
3. 명령어를 입력했으면 다시 git-hub으로 와서 새로고침(f5)해본다
아까 그 화면이 사라지고, 아래와 같이 빈 저장소가 나온다.
앞으로 git-bash에서 commit완료한 프로젝트들을 push하면 아래의 저장소로 들어온다.
git기본은 이정도로 정리하고,
나머지 커밋변경, 커밋지우기, 부가기능은 다음에 정리해야겠다
'Tool > git' 카테고리의 다른 글
git 사용시 내가 지켜야 할 사항 (0) | 2021.01.08 |
---|---|
프로젝트랑 git 지우고 다시받기 (0) | 2020.12.24 |
로컬 .git 저장소 변경하기 (0) | 2020.12.15 |