● 커밋 설명 수정
$ 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 브랜치 생성
![](https://blog.kakaocdn.net/dn/dxxvc0/btrCldb9Eos/FKjbPAftfxEkVPaXG6tfg0/img.png)
2. hds 브랜치에서 커밋4 진행
![](https://blog.kakaocdn.net/dn/cSFMw4/btrCsjBxIrI/KO6m19O5ftHDk4Y9NkEx9K/img.png)
3. master 브랜치에서 커밋5 진행
![](https://blog.kakaocdn.net/dn/dQzjeB/btrCsetlRGb/kqFrcNffFiY5rm5gpRNNNK/img.png)
4. [HEAD] 포인터의 역할
- 브랜치 혹은 커밋을 가리키는 포인터이며, [HEAD]를 통해 현재 커밋 상태를 표시해준다.
- 또한 최신 커밋이 아닌 과거 커밋으로도 이동할 수 있다.
![](https://blog.kakaocdn.net/dn/c2B6ZS/btrCqHpEAFH/GZYofP8oH0O5K4HIdSO7w0/img.png)
● 병합 하기 - 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로 병합