pwd 현재 경로 확인하기
절대 경로 : 전체 경로
상대 경로 : 현재 경로를 기준으로 나타낸 경로
현재 경로는 . 으로 나타냄
상위 경로는 .. 으로 나타냄
ls 현재 경로의 파일 및 폴더 조회
ls -al 현재 경로의 숨김 파일 및 폴더까지 모두 조회
숨김 파일 및 폴더 : . 으로 시직함
cd <경로> : <경로>로 이동하기
cd .. 상위 경로로 이동하기
cd . 현재 경로로 이동하기
cd ~ 홈 디렉토리로 이동하기
touch <파일명> : <파일명> 을 이름으로 갖는 파일 생성
cat <파일명> : 파일 내용 확인하기
vi <파일명> : <파일명> 편집하기
A 또는 i 입력
Esc 빠져나오기
:w 저장
:q 편집기 종료
:wq 로 활용 가능
rm : remove
mkdir <디렉토리 이름> : 디렉토리 만들기
rmdir : 비어있는 디렉토리 삭제 (비어있어야만 가능)
rm -rf 강제로 지우기
Rm : remove
Mkdir <디렉토리 이름> : 디렉토리 만들기
Rmdir : 비어있는 디렉토리 삭제 (비어있어야만 가능)
Rm -rf 강제로 지우기
버전 : commit : 변경사항
git은 변경사항을 관리하기 위한 도구!
버전은 유의미한 변화가 결과물로 나온 것 (e.g. 버그 삭제, 새로운 기능 추가)
Github 원격 저장소 호스팅 서비스
작성자 이름 입력
Git config —global user.name dayounglee
작성자 이메일 입력
git config --global user.email verdantjuly@kakao.com
작성자 이름/이메일 확인
git config -l
Working tree 작업 디렉토리
: 버전 관리의 대상이 위치하는 공간 (.git이 있는 디렉터리)
Index 스테이지
: 다음 버전이 될 후보가 올라가는 공간
(유의미한 변경사항만 스테이지에 올려 준다 = add)
(유의마한 변경사항이 버전으로 나온 것 = commit)
Repository 저장소
: 로컬 저장소 (내 컴퓨터 속) / 원격 저장소 (인터넷)
과정 예시
작업 디렉터리 내에서 변경사항 생성
스테이지로 add
저장소로 commit
Git init 로컬 저장소 만들기
Git add <스테이지에 추가할 대상> <> 스테이지에 올리기
Git add . 모든 변경사항 스테이지에 올리기
Git status 작업 디렉터리 상태 확인하기
Git commit -m <커밋 메시지> 커밋 메시지로서 커밋
커밋 메시지 :
제목
(한 줄 띄고)
본문
** 커밋 메시지 잘 작성해야 함!!!
Git log 내가 만든 버전 확인
commit 84fbf581be7c249210bc27ca408c57c5267646cc (HEAD -> master)
여기서 긴 문자는 commit hash (commit 을 구분하는 특별한 정보)
Clear > cmd 초기화
Git diff 최근에 만든 커밋과 현재 작업 디렉토리를 비교
Git diff —staged 최근 커밋과 스테이지 비교하기
Git diff <커밋> <커밋> 커밋까리 비교하기
Git diff <이 커밋에 비해> <이 커밋이 뭐가 달라>
브랜치 : 버전을 여러개의 흐름으로 관리하는 방법
: 버전의 분기
브랜치로 버전의 분기를 관리하는 방법
- 브랜치를 나눈다
- 각자의 브랜치에서 작업한다
- 합친다
충돌 : 같은 부분을 다르게 수정한 부분
최초의 브랜치 : master 브랜치 (main 브랜치 : 이름만 다르다)
Git branch
브랜치 마스터 이름 검색하기
Git branch foo
Foo 라는 이름의 새로운 branch 만들기
Git checkout foo foo브랜치로 환경 바꾸기
Git branch -d
체크아웃 되어 있지 않은 브랜치의 삭제
Git merge
브랜치를 합친다 = merge 한다 = 병합한다
병합에는 두가지 방법이 있음
- 새로운 커밋을 만들지 않음
- 새로운 커밋을 만듬
빨리감기 병합 fast-forward merge
Git checkout -b bar 체크아웃과 동시에 브랜치 만들기
충돌 (conflict)
- 같은 부분을 다르게 수정한 경우
충돌 해결
- 같은 부분을 다르게 수정한 경우 어떤 걸로 할지 결정
Command 메시지 수정
—amend
충돌이 발생했을 때 대처법
- 남길 브랜치를 선별하여 남기고 나머지 다 지운다.
- 커밋한다
명령어 > 클릭 하는 것처럼 외워라. 무의식중에도 나올 수 있게.
충돌 해결하기 > 중요
> 해결하는 연습 하지 않으면 실무에서 대처 어려움
기본적인 git reset = mixed reset (default)
Git revert 해시
GitHub
Clone : 원격 저장소를 복제
(숨김 폴더 즉 .git 도 복제되어 git init 할 필요 없음)
Push : 원격 저장소에 밀어넣기
Fetch : 원격저장소를 일단 가져만 오기 (확인만 하고 싶을 때)
Pull : 원격 저장소를 가져와서 합치기
Https 와 ssh 의 차이점
일부 사이트에서 https 를 막아두고 있음
ssh가 더 안전함
Main 브랜치 == master 브랜치
Origin == 원격 저장소에 붙은 일종의 별명
Origin/HEAD == 원격 저장소 origin의 HEAD
Origin/main == 원격 저장소 origin의 main
git fetch origin main
git checkout FETCH_HEAD
Pull = fetch + merge
Pull request 를 자주 하기 > 포트폴리오 형성에 도움
풀 리퀘스트(Pull request)
- 기여하려는 저장소를 본인의 계정으로 포크 해 오기
- 포크한 저장소를 클론하기
- 브랜치 생성 후 생성한 브랜치에서 작업하기
- 작업한 브랜치 푸시하기
- 풀 리퀘스트 보내기
출처 : 스파르타 코딩 클럽 내일 배움 캠프 [git 기초 특강]
'학습 내용 정리 > git' 카테고리의 다른 글
node.js npm git 배포 (0) | 2023.06.13 |
---|---|
github 다운로드 (0) | 2023.05.18 |
github repository에 팀원 추가하기 (0) | 2023.05.18 |
대용량 프로젝트 git 올리기 (1) | 2023.05.10 |
git 이전 commit으로 돌아가기 (1) | 2023.04.27 |