본문 바로가기

웹 개발/Git

[Git] 02

 커밋 설명 수정

$ git commit --amend

i > 내용 수정 "커뮤니티 게시판 버전 설명 추가" > esc > : > wq

 

 

 

 커밋 로그

$ git log

$ git log --pretty=oneline

 

 

 

 버전 설명 파일 수정

firstProject 안에 README.txt 파일 내용 수정

> "커뮤니티 게시판

기본 CRUD가 가능한 게시판"

 

 

 

 스테이징, 커밋 한번에 처리

$ git commit -am "버전 설명 수정"

 

 

 

 이전 버전으로 돌아가기

$ git log

$ git checkout [커밋아이디]

 

 

 

 최근 버전으로 돌아가기

$ git checkout -

 

 

 원격 저장소(remote - Repository) 만들기

1. github.com 로그인 > Repositories 상단 탭 클릭 > 우측 New 클릭

2. Repository name : firstProject

3. Discription : 커뮤니티 게시판

4. Public 체크

5. README.md 체크 해제(md는 텍스트 파일이며, 마크다운을 의미한다)

 

 

 

 원격 저장소 연결

$ git remote add [원격 저장소 이름] [원격 저장소 URL]

$ git remote add origin https://github.com/bugbugcoding/firstProject.git(예시)

$ git remote

$ git remote -v

 

※ fetch

- 자동으로 병합되지 않고, 수정된 파일을 직접 보며 수동으로 병합한다.

- 원본 내용과 변경된 내용의 차이를 알 수 있으며, 실수를 최소화 해야 할 때에만 사용한다.

- 확인 후 병합은 직접 해주어야 한다.

 

 

 

 원격 저장소에 로컬 저장소 올리기

$ git push [원격 저장소 이름] [브랜치 이름]

$ git push origin master

 

※ returned error: 403

- 이미 다른 계정으로 PC에 로그인된 상태이다.

- 제어판\사용자 계정\자격 증명 관리자 > Windows 자격 증명 클릭 > git:https://github.com 삭제

 

$ git push [원격 저장소 이름] [브랜치 이름]

> 브라우저 로그인 클릭

> Authorize GitCredentialManager 클릭

> Authentication Succeeded

 

 

 

 원격 저장소를 로컬 저장소로 복사하여 받기(init 하면 안됨!)

1. git 폴더에 firstProject_v1 폴더 생성

2. firstProject_v1 폴더 우클릭 > Git Bash Here 클릭

 

$ git clone [원격 저장소 URL] [다운받을 경로]

$ git clone https://github.com/bugbugcoding/firstProject.git .

 

 

 

 변경된 내용 커밋

1. README.txt 내용 변경

"

커뮤니티 게시판 첫번째 버전입니다.

게시글 전체 폰트 변경

 

개발자 목록

1. 한동석

2. 홍길동

3. 이순신

"

 

2. firstProject_v1 Bash창에서 작성

$ git commit -am "개발자 목록 추가"

$ git push origin master

 

 

 

 변경된 내용 받기

1. firstProject Bash창에서 작성

$ git pull origin master

 

 

 

 소스트리 설치

- GUI 환경으로 Git 서비스 제공

https://www.sourcetreeapp.com/

 

 

 

 로그인

1. Bitbucket 클릭

2. email, username 작성

3. Sourcetree창에서 뒤로 클릭 > Bitbucket 클릭

4. Grant access 클릭

5. Mercurial 체크 해제 > 다음 > 다음

6. SSH키 아니오 클릭

 

 

 

 Git-Hub 연결

1. 계정명 우클릭 > 계정 편집

2. 호스팅 서비스 : GitHub

3. OAuth 토큰 새로 고침

4. Authorize 클릭 > 확인

 

※ 계정 연동이 안될 시 전부 삭제 후 다시 계정 추가 하기

 

 

 

 Clone

- 원격 저장소를 내 컴퓨터에 받아오고 소스트리에도 추가

- 로컬 저장소는 자동으로 생성된다.

 

 

 

 Add

- 이미 만들어진 로컬 저장소를 소스트리에 추가

 

 

 

 Create

- 새로운 로컬 저장소를 생성한다.

- git init과 동일하다.

 

 

 

 로컬 저장소 소스트리에 추가

- Add 클릭 > 탐색 > git 폴더에 firstProject 선택 > 추가

- 새 탭 > Add > 탐색 > git 폴더에 firstProject_v1 선택 > 추가

 

 

 

 md파일 만들기(git/firstProject)

1. 새 텍스트 문서 생성 > community_board_list.md 로 이름 변경 > 아래 내용 작성

"

1. 안녕하세요 반갑습니다.

2. 혹시 이거 아시는 분?

"

 

2. 새 텍스트 문서 생성 > community_reply_list.md 로 이름 변경 > 아래 내용 작성

"

# 댓글 목록

 

1. 좋은 글 잘 봤습니다.

2. 이 분 글이 제일 명확함.

"

 

 

 

 소스트리 스테이징 및 커밋

1. 커밋하지 않은 변경사항 클릭 > 커밋 클릭 > 도시락 버튼("대기 중인 파일, 파일 상태순 정렬" 오른쪽) > 스테이지 뷰 나누기

2. 스테이지에 올라가지 않은 파일 목록에서 community_board_list 오른쪽 + 버튼 클릭

3. community_reply_list 도 + 버튼 클릭

4. 창 하단에 커밋 메세지 작성 > "게시글 목록, 댓글 목록 추가"

5. 창 우측 하단에 커밋 버튼 클릭

 

※ History에서 master는 로컬 저장소 버전을 의미하고, origin/master는 원격 저장소의 현재 버전을 의미한다.

※ 로컬 저장소와 원격 저장소의 버전이 다른 것을 확인할 수 있다.

 

 

 

 원격 저장소에 push하기

- push 버튼 클릭 > master 체크 > Push버튼 클릭

 


 

 브랜치

- 한 개의 처리 경로를 여러 개의 처리 경로로 나눌 때 사용한다.

- 보통 동시에 버전 관리를 해야 할 때 사용한다.

- 기본 브랜치는 master(지금은 main)이고, 각각의 브랜치는 현재 버전에 대한 커밋을 가리키고 있다.

 

1. 커밋3 상태에서 hds 브랜치 생성

 

2. hds 브랜치에서 커밋4 진행

 

 

3. master 브랜치에서 커밋5 진행

 

 

4. [HEAD] 포인터의 역할

- 브랜치 혹은 커밋을 가리키는 포인터이며, [HEAD]를 통해 현재 커밋 상태를 표시해준다.

- 또한 최신 커밋이 아닌 과거 커밋으로도 이동할 수 있다.

 


 

 병합 하기 - merge

- 두 개의 브랜치에서 두개의 파일을 병합한다고 가정한다.

 

1. Merge commit

- 각 브랜치에서 수정한 파일이 서로 다르면 두 파일이 같이 적용된다.

(ex) 마우스와 키보드를 각 브랜치에서 구매했다면 병합 후 마우스와 키보드를 같이 사용할 수 있다.

 

2. Fast-forward

- 각 브랜치에서 하나의 브랜치에서만 수정이 있다면 하나의 브랜치의 상태만 변경해준다.

(ex) 마우스가 없는 브랜치와 마우스가 있는 브랜치를 빨리 감기 병합을 했다면 이제 마우스를 사용할 수 있는

       상태로 변경된다.

 

3. Conflict

- 각 브랜치에서 같은 파일이 서로 다르다면, 충돌이 발생한다.

- 각 브랜치에서 서로 다른 키보드를 같이 구매했다면, 어떤 키보드를 사용할 지 알 수 없다.

 

 

 

 master 브랜치 checkout

master 우클릭 > 체크아웃 master

 

 

 

 master와 board/board_detail 병합

- 두 브랜치를 합치면 master에는 board_list와 reply_list가 있고,

   board/board_detail에는 board_detail이 있기 때문에 Merge commit이 된다.

 

 

 

 master와 board/board_detail 병합 방법

(방법1)

- 그래프에서 origin/board/board_detail board/board_detail 최신 커밋 부분 우클릭 > 병합 클릭

 

(방법2)

- 좌측 브랜치에서 원하는 브랜치(board/board_detail) 우클릭 > 현재 브랜치로 board/board_detail 병합 클릭

 

 

 

 병합 후 브랜치명 뒤에 있는 숫자의 의미

- master 뒤 4라는 숫자는 4개의 커밋이 로컬 저장소에서만 반영 되었고, 원격 저장소에는 반영되지 않았다는 의미이다.

- origin/master 보다 4칸 앞서 있다.

 

 

 

 병합

1. origin/master 원격 저장소에 push

 

2. master 브랜치만 체크한 뒤 push

 

3. "게시글 목록, 댓글 목록 추가" 지점 클릭 후 브랜치 생성(user/login)

 

4. git안에 firstProject_v1안에 login.md 생성 후 아래 내용 작성

"

# 로그인 항목

 

- 아이디

- 비밀번호

"

 

5. user/login 커밋 "로그인 항목 추가" 메세지 작성 후 커밋

 

6. "게시글 목록, 댓글 목록 추가" 지점 클릭 후 브랜치 생성(user/mypage)

 

7. user/login과 병합(Fast-forward 병합)

 

8. 순서대로 하나씩 병합하여 마지막에 master로 병합

 

 

 

'웹 개발 > Git' 카테고리의 다른 글

[Git] 03  (0) 2022.05.21
[Git] 01  (0) 2022.05.19