일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코틀린기초
- 백준 14938번 서강그라운드
- hash
- map
- 프로그래머스
- replace()
- 18111번 마인크래프트 - java 구현
- 백준 1806번 부분합 java
- 백준 2473번 세 용액 - java
- HashSet
- StringBuilder
- 프로그래머스 자바
- 백준 1197번 최소 스패닝 트리 - java
- ac 5430번
- 백준 1541
- 백준 1043번 거짓말 - java 분리 집합
- kotlin
- 최소 힙 1927
- toUpperCase
- StringTokenizer
- 백준 3190번
- Java
- dp
- append
- 백준 1647번 도시 분할 계획 - java
- 프로그래머스 java
- 백준 2467번 용액 자바 - 이분탐색
- mysql hy000 에러
- Stack
- HashMap
- Today
- Total
말하는 컴공감자의 텃밭
GitHub 정리 - 알고리즘 스터디 관리 편 본문
잠깐 안쓴다고 그새 까먹었네..
이미 스터디용 레파지토리가 있는 가정하에 정리합니다... 스터디 하시는분들 화이팅 ༼ つ ◕_◕ ༽つ
먼저 git의 간단한 흐름입니다.
-
- 작업 디렉토리(Working Directory):
- 여기서 파일을 생성, 편집, 삭제하는 등의 작업을 수행합니다.
- 이 단계에서의 변경 사항은 아직 Git에 의해 추적되지 않습니다.
- 준비 영역(Staging Area):
- 작업 디렉토리에서 변경한 파일 중 Git에 커밋하기를 원하는 파일을 선택하여 준비 영역에 추가합니다. 이는 git add 명령어로 수행됩니다.
- git add [파일명]을 사용하여 개별 파일을 추가하거나, git add . 를 사용하여 모든 변경 사항을 추가할 수 있습니다.
- 커밋(Commit):
- 준비 영역에 추가된 변경 사항을 로컬 저장소에 영구적으로 기록합니다. 이는 git commit 명령어로 수행됩니다.
- 커밋 시에는 변경 사항에 대한 설명을 포함하는 커밋 메시지를 작성합니다. 예: git commit -m "커밋 메시지"
- 로컬 저장소(Local Repository):
- 여러 개의 커밋이 로컬 저장소에 저장됩니다.
- 이 단계에서의 변경 사항은 로컬 컴퓨터에만 존재하며, 다른 사람과 공유되지 않습니다.
- Push 및 원격 저장소(Remote Repository):
- 로컬 저장소의 변경 사항을 원격 저장소(예: GitHub)에 업로드합니다. 이는 git push 명령어로 수행됩니다.
- 예: git push origin master 명령어는 master 브랜치의 변경 사항을 원격 저장소의 origin에 업로드합니다.
- 원격 저장소는 변경 사항을 공유하고, 협업을 위한 중앙 집중식 허브 역할을 합니다.
- 작업 디렉토리(Working Directory):
이 과정을 예시랑 함께 가보게쑵니다
- 0. 먼저 Fork를 따줍니다.
fork 라는건 말 그대로 포크로 남의 접시의 음식을 내 접시에 퍼온다고 생각하시면 됩니다.
원본 레포*(repository)를 건들이지 않으며 그대로 내 레포로 가져오는 작업입니다.
작업 후 원래 레포에 합치고 싶어요! 라는 메시지인 Pr(pull request)를 통해 원본과 합쳐질(merge) 수 있습니다.
비슷한 방법으론 Clone이 존재하는데
clone은 다른 레포를 내 local 즉 내 컴퓨터에 복사해서 새로운 저장소를 만드는 방식입니다.
원본 저장소의 모든 파일, 커밋 기록 분기가 포함되고 변경 사항은 변경 사항을 명시적으로 원격 저장소에 다시 푸시할 때까지 원본에 영향을 주지 않습니다.
결국 Fork하고 Clone을 해서 문제를 풀고 PR로 merge 해야겠죠
알고리즘 풀이를 메인 레포에 모으고 싶었기에 fork로 진행했고 자연스럽게 Pr로 코드리뷰가 될거라 판단했습니다.
-> 이거 맞겠지
fork 를 누르면 개인에게 레포가 생기게 되는데 여기서는 아무리 수정해도 원본에 영향을 주지 않습니다.
이제 Fork 한 내용을 원격에서 내 local -> 내 pc 폴더로 담아줍니다.
- 1. 원하는 폴더를 선택하고, 우클릭하여 GitBash를 눌러 터미널을 열어줍니다.
- 2. 터미널에 git init 을 작성하여 git 파일을 초기화 해줍니다.
- git init : 현재 디렉토리에 새로운 Git 레포를 초기화 해줍니다. 루트 디렉토리여야 합니다.
- 3. fork 한 주소를 복사합니다.
- 4. git clone [fork한 자신의 주소]를 작성합니다. 터미널에는 shift + insert를 활용하여 붙여넣습니다.
- 5. 이상이 없다면 설정한 폴더에 레포 자료가 받아집니다.
- 6. 받은 파일을 로컬에서 작업 후 다시 원격으로 파일을 올리고 싶다면
- git add 를 통해 파일을 올려줍니다.
- git add 파일명 -> 해당하는 파일을 추가 함
- git add . 전체를 추가 함
- git add * 수정된 사항을 추가 함
- git add 를 통해 파일을 올려줍니다.
- 7. git commit -m "커밋 메세지" 를 통해 커밋 메세지를 작성합니다.
- ex) git commit -m "First push"
- 8. 파일을 올렸고, 커밋메세지도 작성했으니 원격 저장소로 push해줍니다.
- git push origin master
- origin은 레포를 나타내며 로컬 Git 레포지토리에서 원격 저장소를 참조하기 위한 기본 이름입니다.
- master은 브랜치 명 입니다. 브랜치는 프로젝트 명마다 다를 수 있습니다.
- clone이 아니었다면 로컬 git과 원격 저장소를 git remote add origin [원격 저장소 URL] 을 통해 연결해야합니다.
- 9. 이후 원본 레포에 Merge 하고 싶다면 Pr을 생성합니다.
- 10. 원본에 추가가 있다면 먼저 fork 레포의 Sync를 맞춰주어야 합니다.
- 11. Pr을 작성해 주세요
- 12. 원본 레포에서 pr을 허락하면 병합됩니다.
더 공부해야겠습니다.. 껄꼴..꼬록.. 🍺
추가로 파일 하나만 따오고 싶다면 아래 방법을 ^<^
https://hb-in99.tistory.com/108
이전자료..
'Tool > git' 카테고리의 다른 글
서브모듈 - subModule (0) | 2024.05.14 |
---|---|
Git Oauth 활용 로그인 하기 (0) | 2024.01.18 |
Git 하위 폴더만 가져오기 - sparseCheckout (0) | 2024.01.16 |
git 화살표 폴더 (0) | 2023.10.31 |
git - 프로젝트 올리기 (0) | 2023.03.07 |