티스토리 뷰
💬 기본적으로 SourceTree를 기준으로 설명합니다.
Commit으로 버전관리 하기
- 프로젝트 만들기(영어로 특수문자 없이, 단어 연결시 -, _ 사용)
- 프로젝트를 Git이 관리하는 폴더로 만들기(깃 초기화, git initialize)
- New Tab
- Create
- 경로설정, 이름, 유형(Git) 설정, 원격저장소생성체크X
- 생성하기
- 폴더에 .git 생김(숨김파일)
- 커밋하기
- 커밋 누르기
- 스테이지에 올리기
- 커밋메시지 작성 후 커밋
- Git프로젝트 없애는 방법
- .git 파일 삭제
원격 repo 사용하기
- 로컬 repo -> 원격 repo : push
- 원격 repo -> 로컬 repo : pull
- 원격 repo에 있는 것을 로컬에 단순히 다운로드하는 개념 : 클론(clone)
- 충돌 최소화 꿀팁! Pull, Commit, Push 순서
- 깃헙 > repository생성
- 깃헙원격repo와 로컬repo연결(Tracking)
- 설정
- 원격(이름 : origin, URL : repository url)
- URL연결 안 될 때 : 참고사이트
- 브랜치 우클릭 > 이름변경 > master > main 으로 바꾸기
- 클론
- 가져올 폴더 만들기(목적지 경로)
- 클론한 repo 링크 복사(소스링크)
Git으로 협업하기
1. 작업할 것 정하기(issue 할당)
- 깃헙 issues탭, 이슈트래킹 툴(jira trello, youtrack)
- 이슈번호 #1, #2, #3
- 커밋메시지에 이슈번호 추가하면 링크 생김
2. 각자 작업(branch)
- 커밋할 내역 있는지 확인(없어야 됨)
- 브랜치 생성
- main브랜치에서 우클릭
- 브랜치
- 새브랜치 (예시) feature/2(이슈번호)_jjigae, 명시된커밋, 새브랜치 체크아웃 체크 확인
- 브랜치 생성
- 브랜치 옆 o 가 현재 나의 위치. 다른 브랜치 더블클릭하면 그 브랜치로 체크아웃됨(현재 작업할 브랜치를 선택하는 것을 체크아웃이라고함)
- 브랜치 삭제(모든 작업, 수정내역 사라짐 주의, 파일도 원상복구됨)
- 삭제할 브랜치 외 브랜치로 체크아웃
- 우클릭 삭제
- 강제삭제 체크 후 확인
3. 병합(merge)
- main 브랜치 체크아웃
- 병합 누르고 옵션 체크(즉시 커밋 병합, 메세지 첨부, fast-forward)
- 가장 최신 커밋 병합하면 그 아래 커밋들도 같이 따라감
- 브랜치 삭제
- 병합충돌
- 같은 파일을 각기 다른 브랜치에서 수정해서 병합하게 되면 충돌이 일어남
- 병합충돌 메시지 확인
- <<< HEAD : 현재 깃에서 가리키고 있는 내용
- ==== : 경계를 사이에 두고 위와 아래가 충돌중
- >>>> : 현재 커밋을 시도하여 충돌된 내용
- 내용 수정해서 다시 커밋(새로운 내용 추가하지 않기)
4. 병합 전 작업(Pull Request, PR)
- 병합 전 코드리뷰
- 깃허브 해당 브랜치로 이동
- Pull Request 클릭 후 진행
- 내용 수정이나 추가한 후 커밋 푸시하면 자동으로 내역이 Pull Request에 따라붙음
- 완료되었으면 Merge pull request 클릭 > confirm merge
- Delete branch
- 다른 사람의 repo에 PR하기
- issues 확인
- Fork 해오기
- Clone 하기
- 브랜치 생성
- 작업 후 커밋 푸시
- 깃허브에 가서 PR (Allow edits by maintainers 체크)
Commit관리
- Commit 수정 : 반드시 나만 작업하는 특정 브랜치 하나에만 적용!
- amend(최신 commit 수정하기)
- 파일상태
- 커밋옵션
- 마지막 커밋 정정
- push 한 것 수정
- 도구 > 옵션 > Mercurial > 강제 푸시 가능 체크
- amend(최신 commit 수정하기)
- revert, reset
- revert : 커밋이 변경되었다는 것을 알리면서 되돌리기
- 되돌아가려는 커밋에서 우클릭
- 커밋되돌리기
- reset : 해당 커밋 이후 삭제
- 되돌아가려는 커밋에서 우클릭
- 이 커밋까지 현재 브랜치를 초기화
- revert : 커밋이 변경되었다는 것을 알리면서 되돌리기
- stash(변경사항 임시 보관하기) : 커밋하기 애매하고 다른 작업을 해야할 때?
- 저장할 작업 선택하고 스태시 > 왼쪽 스태시 탭으로 이동함
- 가져올 때는 왼쪽 스태시 탭에서 우클릭
- 스태시 적용
- 삭제
코드리뷰 관련 자료
gitignore
- 파일확장자명, 숨김파일 보이게 설정
- gitignore탐색사이트
CLI 명령어
- 새로운 저장소 만들기(git관리할 폴더 안에서)
git init
- 로컬 저장소 복제
git clone /로컬/저장소/경로
- 원격 저장소 복제
git clone 사용자명@호스트:/원격/저장소/경로
- 작업의 흐름
- Working directory : 실제 파일
- Index : 준비영역(stage)
- Head : 최종 확정본(commit)
- 커밋하기
- 인덱스에 추가(add stage)
git add <파일 이름>
git add *
- HEAD에 반영(commit)
git commit -m "커밋메시지
- 인덱스에 추가(add stage)
- 원격 저장소와 연결
git remote add origin <원격서버주소>
- 변경내용 원격 저장소에 반영하기(push)
- 다른 브랜치를 발행하려면 master의 이름을 바꾸면 됨
git push origin master
- 다른 브랜치를 발행하려면 master의 이름을 바꾸면 됨
- 가지치기 : 저장소를 새로 만들면 기본적으로 master 가지가 생성됨
- "feature_x" 라는 이름의 브랜치 생성 후 갈아타기
git checkout m-b feature_x
- master 가지로 돌아오기
git checkout master
- 브랜치 삭제
git branch -d feature_x
- 새로 만든 가지를 원격 저장소로 전송하기 전까지는 다른 사람들이 접근할 수 없음
git push origin <가지 이름>
- "feature_x" 라는 이름의 브랜치 생성 후 갈아타기
- 갱신과 병합
- 로컬 저장소를 원격 저장소와 맞춰서 갱신(pull)
git pull
- 다른 브랜치의 내용을 현재 가지에 병합하기(merge)
git merge <가지이름>
- 병합 충돌(merge conflict)
- 변경내용 비교
git diff <원래가지> <비교 대상 가지>
- 파일 병합하기
git add <파일 이름>
- 변경내용 비교
- 로컬 저장소를 원격 저장소와 맞춰서 갱신(pull)
- 로컬 변경 내용 되돌리기
- 변경 내용을 변경 전 상태(HEAD)로 되돌리기
git checkout -- <파일 이름>
- 하드리셋(로컬의 모든 변경내용과 확정본 포기)
``
git fetch origin git reset --hard orijin/master
- 변경 내용을 변경 전 상태(HEAD)로 되돌리기
- 꼬리표 달기
- 1.0.0 꼬리표 달기
git tag 1.0.0 1b63ffdw
- 1b63ffdw 는 확정본식별자로서 git log 명령으로 알 수 있음
- 1.0.0 꼬리표 달기
- 유용한 힌트
- git 내장 GUI
gitk
- 콘솔에서 git input을 컬러로 출력하기
``
git config color.ui true
``` - 이력(log)에서 확정본 1개를 딱 한 줄로만 표시하기
git config format.pretty oneline
- 파일을 추가할 때 대화식으로 추가하기
git add -i
- 관련자료
Pro Git - A Visual Git Reference
- git 내장 GUI
반응형
'개발냥이 > etc' 카테고리의 다른 글
[CI/CD] Docker & Jenkins를 이용해 Springboot CI/CD 구축해보기 (0) | 2022.11.05 |
---|---|
[Docker] EC2 인스턴스 연결하기, Docker ubuntu에 설치하기 (1) | 2022.11.03 |
🐬돌고돌래🐋 여행 추천 서비스 OPEN! (0) | 2022.10.21 |
[회고] 프론트와 첫 협업 프로젝트 (0) | 2022.09.11 |
Stackoverflow: null, 무한로그, 양방향 순환참조 에러 (0) | 2022.09.11 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Algorithm
- JavaScript
- 형변환
- 자바스크립트
- 정렬
- 자바bfs
- 백준
- Queue
- Nest
- 프로그래머스
- 자바트리
- 알고리즘
- 타입스크립트
- BFS
- dfs
- 해시맵
- 리액트
- 이분탐색
- JPA
- SQLD
- CS
- 자바
- 스프링
- 자바dp
- 스프링부트
- DP
- Comparator
- java
- Spring
- SQL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함