🔔 VScode 설치 사이트 바로가기
https://code.visualstudio.com/ 링크를 통해 프로그램을 설치하고 설치 폴더 경로를 지정한다.
VScode는 편하게 쓰는 IDE(코딩할때 쓰는 프로그램)가 없을때 편의를 위해 다운받음.
🔔 Git 설치 사이트 바로가기
https://git-scm.com/ 링크를 통해 프로그램을 설치하고 폴더 경로를 지정한다.
설치 중 추가 설치로그램 ✅체크는 그대로 계속 진행한다.
Git을 사용할 기본 에디터 선택은 기본인 Vim을 선택한다.
새 Repository를 생성할 때 Git branch 이름을 지정하는 방법은 기본("master") 그대로 선택한다.
Git 커맨드를 사용하기 위한 환경변수를 설정한다.
SSH 기본 실행 도구를 선택하고 "Next" 해준다.
HTTP 연결 옵션을 OpenSSL 라이브러리를 선택하고 "Next" 해준다.
Git Bash 터미널 에뮬레이터를 선택하고 "Next" 해준다.
Git pull 명령어에 수행될 동작을 기본으로 선택하고 "Next" 해준다.
자격 증명 도우미 사용을 선택하고 "Next" 해준다.
기타 옵션은 기본으로 선택하고 "Next" 해준다.
실험적 기능 사용여부는 어떤것도 선택하지않고 "Next" 해준다.
↪개발중인 기능으로 익숙하지않다면 선택하지않는것을 권장!
<참고>
iseunghan tistory_Git 3가지 영역
taetwow tistory_Git 설치하기(2.3.3.1 이상, 상세한 설치법)
lktprogrammer tistory_Git의 기본 개념 및 용어 정리
parkjh7764 tistory_Git Bash란 무엇인가, 설치방법
-. 커맨드 라인(Command Line)은 Git 명령어를 입력할때 사용하는 컴퓨터 프로그램으로, 마우스를 사용하는 것이 아닌 프롬프트로 알려진 텍스트 기반 명령어를 입력한다. Git에서는 Git Bash를 의미하는거 같다.
-. 스테이지(Staging Area)는 로컬저장소로 저장되기 전(commit 전) 거쳐야하는 공간으로, add 명령어를 사용하며, 준비 영역을 의미한다.
-. 커밋(Commit)은 파일 및 폴더의 추가/변경 사항들에 대해 기록 하는 것으로, 최근 시간 순으로 저장되며 과거 변경 이력이나 내용을 확인 할 수 있다. "하나의 의미있는 변화, 하나의 버전, Git이 저장한 하나의 기록"으로 생각할 수 있다.
-. 브랜치(Branch)는 현 시점에서 여러갈래의 미래로 분기하는 것, 말 그대로 하나의 프로젝트 원본은 그대로 두고 현 시점까지의 동일한 프로젝트를 하나더 만든다. 기본 브랜치는 "master"이고, Git 저장소를 초기화할때 자동으로 생성하고 'HEAD'라는 특수한 포인터는 지금 작업중인 브랜치를 가르킨다. 작업중인 브랜치에서 checkout 명령어를 사용해 특정 브랜치로 이동하여 작업할수있다.
-. 머지(Merge)는 다른 브랜치에서 작업해놓은것을 현 브랜치에 가져오는것으로, 여러 브랜치로 작업 후, 현 브랜치에 특정 브랜치를 덮을수 있다. 하지만, 머지(Merge)는 동일한 파일의 동일한 부분을 수정시 충돌이 발생하므로 충돌 발생한 부분중 택일하여 재커밋해야한다.
💡 Commit할 때, 3가지 영역 + 1가지 별개 영역
Working Directory : 내가 작업하고 있는 프로젝트의 디렉토리
Staging Area : 커밋을 위해 파일을 선택하는 준비영역
Repository : 커밋들이 모여있는 저장소
Stash : 위 영역과 별개의 임시 영역으로, 임시적으로 작업사항을 저장하고 나중에
꺼내서 사용💡 파일 상태 2가지
Untracked 상태 : 단어 의미대로 '추적되지 않는' 파일로, 파일 생성후 한번도 add하지
않은 상태
tracked 상태 : 파일이 Git에 의해 그 변동사항이 추적되는 상태로, 특성에 따라
4가지로 나뉜다.💡 Tracked상태일 때, File의 4가지 상태
Untracked : Working Directory에 있는 파일이지만 Git으로 버전관리 전 상태
Unmodified : 신규 파일이 추가되었을때, new file 상태 (git add 상태)
Modified : 파일이 추가된 이후 해당 파일이 수정되었을 때의 상태
staged : Staging Area에 반영된 상태
<참고>
hyeja.log velog_Git, GitHub 개념정리
iseunghan tistory_Git 3가지 영역
goddaehee tistory_Git 저장소 만들기
Git Bash는 cmd창과 같은 역할을 한다.
하지만 운영체제(OS)마다 명령어가 다른데, Git Bash를 설치하면 우리가 사용하는 운영체제인 윈도우(Windows) 운영체제(OS)환경에서도 리눅스 커맨드를 사용할수 있게된다.
$ pwd // 현재 폴더확인
$ ls -a // -a옵션으로 현재 폴더의 숨김 파일까지 파일 목록 확인
$ cd 폴더명 // 해당 위치 디렉토리로 이동
$ mkdir 폴더명 // 현재 폴더 안에 새로운 폴더 생성
$ touch 파일명 // 현재 폴더 안에 새로운 파일 생성
$ rm -f 파일명.확장자 // 해당 파일 강제 삭제
$ rm -rf 폴더명 // 해당 폴더 삭제
$ echo "출력하고 싶은 문장" // " "안에 문장을 출력
$ git // Git 명령어 대한 사용법
$ git --version // Git version확인
✔ $ git c:폴더명 //로컬C드라이브에 있는 해당 폴더로 이동
✔ $ git init // 현재 디렉토리를 로컬 저장소로 설정 (git으로 저장소 선언)
✔ $ git status // 디렉토리 상태 확인
✔ $ git config --global user.name 이름 // Git저장소로 활용하기전 환경설정_사용자 이름 셋팅
✔ $ git config --global user.email 이메일 // Git저장소로 활용하기전 환경설정_사용자 이메일 셋팅
✔ $ git --list // git 사용자 이름과 이메일 확인
✔ $ git add 파일.확장자 // 원하는 파일 스테이지에 추가 (커밋할 파일을 선택하는 것)
✔ $ git add -A // 모든 파일을 스테이지에 추가
✔ $ git commit // 스테이지에 있는 파일들을 로컬 저장소에 저장 (프로젝트 중 하나의 버전/지점 생성)
✔ $ git commit -m "커밋 메시지 작성" //커밋메시지 입력후 커밋
✔ $ git log // 커밋 이력 상세조회
$ git log -p // 각 commit의 diff 결과를 줄단위로 출력
✔$ git log —oneline —decorate —graph —all // 커밋이력을 상세하게 그래프로 표현
$ git diff // commit된 파일상태와 현재 수정중인 상태 비교
✔ $ git branch // 로컬에서의 브랜치목록 보기 (현재 작업중인 브랜치는 앞에 *붙음)
$ git -a branch // 로컬과 원격에서의 브랜치목록 모두 보기 (현재 작업중인 브랜치는 앞에 *붙음)
✔ $ git branch 브랜치명 // 브랜치 생성 (단, master 브랜치에서 1번이상 commit필수)
✔ $ git checkout 브랜치명 // 생성된 브랜치로 이동해서 작업실행
✔ $ git checkout -b 브랜치명 // 생성된 브랜치에서 바로 이동하여 작업실행
✔ $ git merge 브랜치명 // master 브랜치에 병합하고자 하는 다른 브랜치를 병합
✔ $ git branch merge 브랜치명 // 현재 checkout된 브랜치로 명령어에 입력한 브랜치를 병합
✔ $ git branch -d 브랜치명 // 브랜치 삭제하기
$ git config --global init.defaultBranch 새 브랜치명 // 기본 브랜치명인 master을 새롭게 변경
$ git remote // 원격저장소 목록 확인
$ git remote add 원격 저장소명 저장소URL // 입력한 URL의 원격저장소를 입력한 원격저장소명으로 추가
$ git push 원격저장소명 브랜치명// 새로 생성한 커밋들을 원격 저장소에 업로드 (로컬저장소 -> 원격저장소)
$ git push -u 원격 저장소명 브랜치명 // u옵션으로 한번 등록한 후 git push만 입력해도 업로드 가능
$ git pull 원격 저장소명 브랜치명// 로컬 저장소로 파일 다운로드하며, 자동 병합(merge) 수행 (원격저장소 -> 로컬저장소)
자동으로 병합이 되기 때문에 무엇이 추가되고 병합되었는지 확인이 안 됨
코드를 업데이트했거나, 아니면 Github를 통해서 commit했을 때 그 내용을 내려받는 명령어
$ git fetch 원격 저장소명 브랜치명 // 로컬 저장소로 파일 다운로드하며, 수동 병합(merge) 수행, 로컬에 영향X (원격저장소 -> 로컬저장소)
다른 사람이 수정한 부분을 확인가능
$ git fork // 남(다른)의 원격 저장소를 다른 원격 저장소로 복사
$ git clone 저장소URL // URL의 원격저장소를 복사하여 내 로컬저장소에 복사 (remote add 명령어 필요없음)
git pull과 비슷하지만 클라이언트 상에 아무것도 없을 때 내려받는 명령어
✔ $ git stash // 작업 중 커밋 전에 변경사항을 모두 stash에 보관하는것, stash 스택에 잠시 저장했다가 꺼내 사용
즉, 개발 중에 merge/rebase를 해야할 경우 reset/commit하기에 구현이 되지않았을때 사용
✔ $ git stash list// stash 명령어를 통해 저장한 stash 목록 확인
$ git stash apply 스태쉬ID(ex.stash@{0}) // list로 확인한 목록 중 원하는 작업 다시 가져옴
$ git stash drop 스태쉬ID(ex.stash@{0}) // list로 확인한 목록 중 원하는 작업 삭제
$ git stash clear // list에 있는 stash목록 모두 지우기
$ git stash branch 새로만들 브런치명 스태쉬ID // stash내용으로 브런치가 생성되고 생성된 브런치로 checkout되며 stash는 삭제
$ git stash save 메시지 // stash를 많이 한 상황에서 list로 목록을 봐도 구분이 되지않을때 커밋메시지처럼 메시지와 함께 저장하기
✔ $ git checkout 커밋ID(6자리숫자) // git log 명령어로 **이동하고싶은 커밋시점**을 확인하고 사용
git revert와 비슷하게 이전 이후의 커밋내역은 그대로 유지되고, 커밋시점만 이동시킬수있음
✔ $ git reset 커밋ID(6자리숫자) --hard // git log 명령어로 **돌아가고싶은 커밋시점**을 확인하고 사용
특정 커밋으로 되돌아가는데 되돌린 버전 이후는 히스토리에서 삭제
✔ $ git revert 커밋ID(6자리숫자) // git log 명령어로 **되돌릴 커밋시점**을 확인하고 사용
모든 commit을 유지하고 reset과 달리 이전으로 돌아가는 것이 아닌 되돌릴 시점을
현재 커밋 앞으로 가져와 버전을 유지하면서 되돌린 버전의 commit을 만들어 준다.
<참고>
coding-groot tistory_Git을 사용하기 위해 알아야할 용어 및 개념들
pleasurehwang tistory_Github 기본개념
coding-groot tistory_Git Bash 간략 사용기
dev-yakuza posstree_git branch와 git merge
zerocho_Github 사용하기, remote, clone, push, pull
🎥유튜브 생활코딩_Reset & Revert 5.1. revert 이론
🎥유튜브 얄팍한 코딩사전_가장 쉬운 Git 강좌 - (상) 혼자작업편