
안녕하세요!
오늘은 저번 1편에 이어서
소스트리, 브랜치, 슬랙이라는 것에 대해 정리해보고자 합니다.
깃허브 사용법을 모르시는 분들은
2022.01.05 - [깃, 깃허브] - 극초보자를 위한 깃, 깃허브 사용법
극초보자를 위한 깃, 깃허브 사용법
안녕하세요! 오늘은 초보를 위한 깃, 깃허브 사용법 및 명령어에 대해 정리해보고자 합니다 음... 학교에서는 실무에서 깃허브를 사용한다는 사실조차 듣지 못했는데 이것저것 찾아보다가 실무
geumjulee.tistory.com
를 참고해주세요!
오늘 제목에 나와 있는 것들은 지금은 잘 몰라도 같이 잘 공부해보고 배워봐요!
1. 소스트리 설치 : GUI 깃 프로그램의 대표 (https://www.sourcetreeapp.com/)
Sourcetree | Free Git GUI for Mac and Windows
A Git GUI that offers a visual representation of your repositories. Sourcetree is a free Git client for Windows and Mac.
www.sourcetreeapp.com

우리는 깃허브를 쓰기 때문에 건너뛰기

다음

아니오를 눌러주면 됨
2. 사용법
1. 바탕화면에 폴더 하나 만들기

2. 폴더 안에 깃 파일을 만들기 위해 cmd를 열고 git init

3. 소스 폴더 드래그 해서 소스파일트리에 옮기기

4. 만든 폴더 안에 테스트를 위한 텍스트 파일 만들어서 안에 내용 넣어주기

5. 3번 검색 아래 Sourcetree Test를 더블 클릭하면 들어가지는 화면에 아래와 같이 모두 스테이지 올리기를 클릭

이게 git에서 git add . 와 같은 역할임
6. git commit -m " "와 같은 역할로 " "안에 들어 갈 것을 아래와 같이 넣어주고 커밋 버튼 클릭


7. 그렇다면 리셋은 어떻게? 테스트하기 위해 텍스트에 다른 내용을 추가

- 파일상태에서 또 add와 같은 기능을 해준다. 모든 스테이지 올리기 버튼을 눌러줌
![]() |
![]() |
- 6번과 마찬가지로 해주나, 메세지 이름만 바꿔줌(git commit -m " ")
- git reset --hard와 같은 리셋 기능 : 돌아가고 싶은 것에 오른쪽 마우스를 눌러서 이 브랜치로 돌아가기 => hard 모드로 바꿔주면 우리가 아는 리셋모드임
11. git add remote와 같은 기능 : 원격


url 정보가 필요하기 때문에 깃허브에 프로젝트를 만들어줘야 함
- 깃허브에 프로젝트 만들기

- 소스트리에 원격 저장소 정보 넣기(url은 만든 프로젝트 주소 창 복사해서 붙여넣기)

- push 버튼 누르면 깃허브에 올라감

12. 그렇다면 clone(불러오기)는? +을 눌러 처음화면으로 돌아가서

clone을 누르고 불러올 깃허브 프로젝트 주소를 넣어주면 오케이

13. git pull origin main : 서버에 수정사항이 생길 때, 불어오기와 비슷
- README를 추가(깃허브에서 수정사항을 만들어 테스트 하기 위함)

- 그다음 PUll 버튼을 눌러서 불러오면 수정사항이 반영됨

3. 브랜치
1. 브랜치란 무엇일까?
예를 들어 사람 A가 만들고 a -> b - > c 를 작업하고 깃허브에 올리고, 사람 B가 a -> b -> q를 만들었다고 해보자.
사람 A가 만들어서 깃허브에 올린 파일이 있는 상태에서 사람 B가 올리려고 하면 c자리에 q가 있어서 거절되어 깃허브에 올라가지지 않는다.
- 협업을 할 때, 커밋이 다른 운영체제에서 동시에 만들어질 경우 푸시 거절 방지를 위함
- 또한 같은 파일에 같은 라인에 코드를 서로 다른 사람이 건드릴 경우를 대비함
- 상대방의 업데이트 상황을 매번 확인하기가 힘들기 때문에 그냥 나눠놓고 한번에 합치자!의 아이디어
- default branch : main a -> c -> d -> e -> f -> d
- (new branch :gitrini) -> q -> 1 -> 2 -> 3 위와 둘이 합쳐주는 것을 merge
2. 브랜치 없이 협업하는 방법(단, 같은 라인에 쓴 것이 아닌 다른 파일인 경우에만 가능)
1. 원래 있는 깃허브 프로젝트 clone

2. 예시를 위해 깃허브 자체에서 수정을 해봄(텍스트 파일에 코드 하나 더 추가)


커밋이 하나 더 늘어남
3. 컴퓨터에 clone 받은 파일도 다르게 수정(텍스트 파일 하나 더 추가)

4. 깃허브에 올리는 것처럼 명령어 사용(충돌돼서 에러 나게 됨)

5. 이를 수정하기 위한 방법 : git pull

를 하게 되면 수정 본들이랑 합쳐지게 됨
3. conflict : 같은 파일을 수정해서 충돌이 났을 경우
위와 같이 4번까지 하면 에러가 난다. 그다음 5번처럼 git pull을 해준다.
그 후 어떤 것을 먼저 할지 텍스트 파일 수정해주고
git commit -m "finish"
git push origin main
을 해주면 된다.
4. branch 활용 실전
1. 깃허브에서 프로젝트(리퍼지토리)를 만든다.
2. git clone 주소로 프로젝트를 내 컴퓨터에 받아들여와 준다.

3. 받아들여온 프로젝트 안에 텍스트 파일을 하나 만들고 내용을 a라고 넣는다.

4. 깃허브에 올리는 것과 마찬가지로 add와 commit를 사용(init를 안하는 이유는 clone해서 불러왔기 때문)
git commit -m "a"를 한 다음 텍스트 파일에 a를 c로 수정 후 git commit -m "c"를 해줌

5. git log로 상태보기

6. branch 사용법 및 명령어

- git branch : 현재 생성되어 있는 브랜치 목록을 확인가능
- git branch 이름 : 이름이라는 새로운 브랜치를 만든다

- git checkout 이름 : 이름이라는 브랜치로 이동한다
- git branch로 확인시 *로 되어 있는 곳이 현재 위치
- 현재 지금은 a -> c 까지 만든 것
- 새로운 텍스트 파일을 하나 만들고 q라고 써놓는다. 후에 커밋 해줌


- checkout을 통해 main으로 다시 이동해보면 a -> c 뿐임, 파일도 텍스트 파일 1개로 돌아감[브랜치를 하고 난 뒤 q가 없는 거임]


- 그리고 Branchtest 텍스트 파일에 d 내용을 넣는다. + 커밋과정

- 깃허브에 브랜치 올리기

- git push origin 브랜치이름 : 특정 브랜치를 깃허브에 푸시한다.

- 다른 브랜치도 올림


7. 브랜치의 Merge 과정(합치기 과정)
- 1) code에 compare & pull request로 merge 하기

- 2) pull requests

- 메인을 무엇으로 할지 결정 후 create pull request를 눌러줌

- 브랜치는 보통 새로운 기능 추가이니 설명을 넣어줌

- merge를 해줌, 그 다음 나온 컨펌 버튼도 눌러주면 합쳐짐



5. 브랜치로 협업하는 방법
1. 하나의 프로젝트에 여러명이 push하기 위해서는 그 프로젝트에 권한을 줘야함


2. 일단 git clone으로 받아냄
3. 그 다음에 4번에 브랜치 사용법와 같이 git branch해서 현재 위치를 본 다음 브랜치를 만들어준다.
- git branch test1 : 브랜치를 만들기
- git checkout test1 : 브랜치로 이동해서 작업하기 위함
- git status : 를 이용하면 현재 파일이 수정됐는지를 알 수 있음
- git log : 현재 만들어진 커밋들을 볼 수 있다.
4. git add . => git commit -m "..."를 해서 커밋들을 만들어 줌
5. git push origin 브랜치이름 : 브랜치를 깃허브에 푸시
6. 그 다음 깃허브 코드 아래쪽에 compare & pull request를 해서 그 프로젝트 계정에 요청해줌
7. 프로젝트 계정에서 보고 pull request를 받아 코멘트를 남길 수도 있고 approve 해주면 merge가 됨
저는 보통 인강을 듣고 예제를 연습삼아 해본 것들을 정리해둔 거라 익숙해지는 데 도움이 될거에요!
글로 이해가 안되면 영상이 최고이긴 하더라고요
'CI & CD > Git' 카테고리의 다른 글
극초보자를 위한 깃, 깃허브 사용법 (0) | 2022.01.05 |
---|
안녕하세요. si 회사 소속 sm LMS 팀에 소속중인 1년차 백엔드 개발자입니다😀 함께 나누고 성장하는 것을 좋아해요. 언제든 디스코드나 구글 메일로 질문해도 됩니다!
⭐ 잘못된 내용은 댓글 적어주세요 :)