일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 너비우선탐색
- 해시
- Merge sort
- 비지도학습
- rest api
- 백준
- 코딩
- 알고리즘
- HTTP
- 이진탐색
- 파이썬 알고리즘
- 코딩테스트
- BOJ
- 자바
- 지도학습
- 파이썬 오류
- 코테
- 파이썬
- 캐싱
- 오버라이딩
- 스택과 힙
- 프로그래머스
- 깊이우선탐색
- 머신러닝
- post
- 멱등
- 딥러닝
- 강화학습
- bineary search
- 딕셔너리
- Today
- Total
chae._.chae
세미나 : 협업을 위한 Git & Github 이해하기 본문
세미나 1차 : 협업을 위한 Git&Github 이해하기
1. 버전관리 시스템 Git
- 소스코드 변경 이력 저장
- 충돌 시 경고메시지 발생
- 백업용 파일 복사본을 만들지 않아도 됨
Github : Git을 기반으로 한 소스코드 호스팅과 협업기능 GUI을 지원하는 웹플랫폼이다.
- git init : 초기화 명령어. git이 파일 작업 내용을 추적할 수 있게 해준다.
파일 안에 .git 이름의 폴더가 생성된다.
- git status : 현재 작업 상태 확인
- master란 : git 초기화(init)시 생기는 기본적 브랜치이다.
- branch란 : 독립적인 작업공간으로, 여러 작업이 동시에 가능하다. (이후 각각의 브랜치들을 merge할 수 있다)
- git commit이란 : 변경 사항 이력을 기록한 것을 말한다. (시간순으로 저장된다)
track을 하기 위해서는 add를 해줘야 한다.
- tracked : git에 의해 파일이력이 추적되고 있는 상태.
- untracked : 추적되고 있지 않은 상태. git add X
tracked에는 아래와 같이 세 가지의 상태가 존재한다.
- Staged : 파일 수정 후 in staging area
- Unmodified : 변화 X
- Modified : 변화 O
2. 파일 위치
- Working Directory : 작업 영역.
- Repository : git내에 변경이력을 저장한다. + Local - 개인 저장소/ Remote : 원격 저장소
- Index : Staging Area로, 작업영역 ~ 저장소 정보 저장 사이의(전의) 준비영역을 뜻한다. + git add : 작업 영역 -> 인덱스, git commit : 인덱스 -> 레포지토리
- Stash : 별개의 임시 영역으로, 임시 작업사항을 저장한다.
정리
git add 명령어를 통해 Working directory -> Index(staging area)
git commit 명령어를 통해 Index(staging area) -> repository
3. 명령어
- git index(staging area에 올린) 파일 삭제 명령어
$ git rm -cached 파일명
- git commit
$ git commit -m "커밋 메시지" : 메시지 옵션
$ git commit -a : add하면서 commit 동시 적용
$ git commit -am "커밋 메시지" : add와 message옵션이 합쳐진 것
$ git commit --amend : 최근 커밋 메시지 수정하여 커밋
- git log : commit한 history명령어 보기
- git resert HEAD^ : 가장 최근에 커밋한거 삭제하기
- git diff : 작업한 파일 또는 브랜치들을 서로 비교(Working dir/repo)
git push (local-> remote)
git push "원격 저장소 이름" "브랜치명"
git fetch : Remote commit -> local
git merge : 다른 브랜치를 현재 checkout된 브랜치에 병합
- fork : 다른 User의 원격 저장소를 내 원격 저장소에 복제
- clone : 원격 저장소를 로컬 저장소에 복제
- pull request : 원격 저장소간의 병합 요청 -> merge해서 발생하는 파일의 손상을 막기 위함이다.
pull request의 flow
- remote : 원본 프로젝트 저장소를 원격 저장소로 추가(fork해서 가져왔을 때)
git remote add origin
# remote -> local
$ git pull remote branch
- checkout : 브랜치 변경 시 git checkout [브랜치명]이고,
-b옵션 : 브랜치의 생성과 동시에 변경을 한다.
-d옵션 : 브랜치 삭제하기
$ git checkout -b newbranch
- git branch : 브랜치 모두 보기(초록색으로 표시된게 현 브랜치)
- push 진행 시에는 branch의 이름을 명시해줘야 한다.
- develop(브랜치명)의 내용을 origin으로 가져온다.
# develop 브랜치의 수정 내역을 origin 으로 푸시한다.
$ git push origin develop