GitBash를 이용한 Git
📌 Windows 컴퓨터에 Git 설치하기
-
🔔 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 저장소에 체크인/아웃할 때의 줄 바꿈 방법을 선택하고 "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란 무엇인가, 설치방법
📌 로컬에서 Git 사용하기
-. 커맨드 라인(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을 사용하는 방법 2가지
- Git Bash_ https://git-scm.com/ ✔
- SourceTree_ https://www.sourcetreeapp.com/
📢 Git Bash를 왜 사용할까?
Git Bash는 cmd창과 같은 역할을 한다.
하지만 운영체제(OS)마다 명령어가 다른데, Git Bash를 설치하면 우리가 사용하는 운영체제인 윈도우(Windows) 운영체제(OS)환경에서도 리눅스 커맨드를 사용할수 있게된다.
1. 로컬에서 Git Bash로 Git 사용하기
- Git Bash창을 띄워준다.
🔍 기본 명령어
$ pwd // 현재 폴더확인
$ ls -a // -a옵션으로 현재 폴더의 숨김 파일까지 파일 목록 확인
$ cd 폴더명 // 해당 위치 디렉토리로 이동
$ mkdir 폴더명 // 현재 폴더 안에 새로운 폴더 생성
$ touch 파일명 // 현재 폴더 안에 새로운 파일 생성
$ rm -f 파일명.확장자 // 해당 파일 강제 삭제
$ rm -rf 폴더명 // 해당 폴더 삭제
$ echo "출력하고 싶은 문장" // " "안에 문장을 출력
🔍 Git 관련 명령어 (원격 저장소없이 자주 사용하는 기본명령어 ✔)
$ 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 강좌 - (상) 혼자작업편
Author And Source
이 문제에 관하여(GitBash를 이용한 Git), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@nam_q_e/GitBash를-이용한-Git저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)