#터미널 #CLI #깃(Git) #깃헙(Github) #파이썬 가상환경
학습 목표
- user : 사용자 이름
- DESKTOP-3EPR9NJ : 컴퓨터 이름
- MINGW64 : 현재 실행중인 bash 프로그램 이름
- ~(main) : 해당 컴퓨터 사용자의 기본 폴더 위치(
git rev-parse --show-toplevel
를 입력해 terminal에서 확인 가능)
vscode folder & terminal(ctrl + ` ) open
$ git init
-> 해당 폴더가 Git의 관리 하에 들어갔다는 의미
*연결된 레포지토리 주소 확인 : git remote -v
$git config --global user.name "(내 이름)"
$git config --global user.email "(내 메일주소)"
.git
숨김 파일(폴더의 시공간 저장 파일) 보이지 않을 때
1) 해당 파일의 '보기'에서 '숨긴 항목' 체크
2) 해당 파일의 '보기-옵션'에서 '보기'의 '알려진 파일 형식의 파일 확장명 숨기기'체크 해제
$ git clone 레포지토리 주소
-> repository를 vscode 해당 folder에 다운로드하는 것
git에서 특정 브랜치만 clone하는 방법
git clone -b {branch_name} --single-branch {GIT URL}
ex) git clone -b javajigi --single-branch https://github.com/javajigi/java-racingcar
4. $ cd 폴더명
-> 다운로드 받은 해당 폴더로 들어가기
ex) cd github-practice
$ git log
-> 프로젝트의 내역들을 그대로 컴퓨터에 복사된 것을 볼 수 있음
5. 파일 수정 및 새로운 내용 추가한 후 아래 명령어 순서대로 입력
git add -A
: stage area에 업로드(staging이라고 부름)git commit -m "메세지"
: local repository에 업로드 + message :협업 시 다른 팀원에게 이 commit에서 어떤 변화가 주어졌는지 간략히 알려주는 역할
*git 커밋 메시지 작성법 예시 googlinggit push
: 원격 저장소/github에 업로드
- push하지 않은 커밋 확인 :
git log --branches --not --remotes
--branches
ref/heads에 있는 모든 커밋을 보여주는 옵션(패턴을 주면 브랜치를 제한할 수 있습니다.)--remotes
: ref/remote에 있는 모든 커밋을 보여주는 옵션(패턴을 주면 마찬가지로 원격브랜치를 제한할 수 있습니다.)
=>--not
: 원격에 없는 모든 커밋이 출력
다른 팀원의 업데이트 내역을 확인하고 싶다면!?
*pull
로 새로운 변경사항을 모두 업데이트 받기 전까지는 내쪽에서push
불가능하므로 이 과정은 필수불가결한 과정이다.
1.git fetch
입력
-> 리모트 브랜치 정보를 업데이트(로컬과 서버의 커밋 히스토리는 독립적으로 정보 동기화가 필요하다)
2.git status
입력
-> github에서 다운받아야할 사항이 있는지에 대해 알려줌
3.git pull (원격명)(브랜치명)
입력
-> 새로운 변경사항 다운로드 & commit 내역 동기화
git clone (클론해올 저장소 url)(로컬 복제 위치:생략가능)
ex) $ git clone https://github.com/lainyzine/git-clone.git
트래킹 브랜치 직접 만들기
리모트를 origin 이 아닌 다른 리모트로 할 수도 있고, 브랜치도 master 가 아닌 다른 브랜치로 추적하게 할 수 있습니다.
$ git checkout -b sf origin/serverfix
Branch sf set up to track remote branch serverfix from origin.
Switched to a new branch 'sf'
이미 로컬에 존재하는 브랜치가 리모트의 특정 브랜치를 추적하게 하려면?!
git branch 명령에 -u 옵션을 붙여 설정해줍니다.
$ git branch -u origin/serverfix
Branch sf set up to track remote branch serverfix from origin.
원격 저장소(remote repository) 연결
- 현재 연결되어 있는 원격 레파지토리 확인 :
git remote -v
- 연결되어 있는 저장소 끊기 :
git remote remove (원격명)
- 다시 원격 저장소와 연결 :
git remote add (원격명) (url)
- remote tracking branch 변경 :
git branch -m (변경 전 branch명)(변경 후 branch명)
- 이 외 명령어
SYNOPSISgit remote [-v | --verbose] git remote add [-t <branch>] [-m <master>] [-f] [--[no-]tags] [--mirror=<fetch|push>] <name> <url> git remote rename <old> <new> git remote remove <name> git remote set-head <name> (-a | --auto | -d | --delete | <branch>) git remote set-branches [--add] <name> <branch>... git remote get-url [--push] [--all] <name> git remote set-url [--push] <name> <newurl> [<oldurl>] git remote set-url --add [--push] <name> <newurl> git remote set-url --delete [--push] <name> <url> git remote [-v | --verbose] show [-n] <name>... git remote prune [-n | --dry-run] <name>... git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]
DESCRIPTION
Manage the set of repositories ("remotes") whose branches you track.
OPTIONS
-v, --verbose Be a little more verbose and show remote url after name. *NOTE: This must be placed between remote and subcommand.
git branch (branch명)
git checkout (branch명)
git checkout -b (branch명)
git checkout -b (생성할 브랜치 명) (원격 브랜치 명)
git checkout -t origin/(branch명)
git push origin/(branch명)
git branch -d (branch명)
git branch
git branch -r
git branch -a
새로 추가한 branch명이 나오지 않는다면!?
=>git fetch
입력 후 다시 확인
새로운 branch를 로컬로 가져와 그리로 넘어가는 걸 한번에 하고싶다면!?
=>git checkout -b (새로운 branch명(a))(원격명(b)/넘어갈 branch명(c))
입력
[의미]
로컬에 a로 브랜치를 만들어서 원격 b의 c브랜치 내용을 받아와 그 평행우주(?)로 건너간다는 뜻
[결과]
새로운 branch의 파일 상태 로컬에 반영 + 로컬에 새로운 branch 생성 + check으로 해당 branch로 이동
*my-another-idea
branch가my-idea
branch의 변화도 포함하므로 my-another-idea
branch만 불러오면 된다.
git checkout master
: master branch로 돌아온다.git merge (변화를 가져올 branch 이름)
두 분기에서의 작업내역 시각화
git log --graph --all --decorate
입력
conflict 발생 : 같은 파일, 같은 부분을 동시에 수정할 경우
1. 수정 내역 하나만 남기고 delete
2.git add -A
3.git commit
여러 분기에서의 복잡한 작업내역들을 깔끔하게 정리하고 싶을 때 merge 대신 사용
git add 명령어 사용 시 '.git/index.lock file exists' 에러 발생
=> 직접 해당 파일 지움
CMD 명령 프롬프트와 아나콘다 프롬프트 차이점
: Windows 명령 프롬프트(cmd)에서 ls, clear 명령어 사용하는 방법
[reference]
[Anaconda] 아나콘다 가상환경의 개념 및 활용방법
GitBook
누구나 쉽게 이해할 수 있는 git 입문
가장 쉬운 Git 강좌 - (상) 혼자작업편
가장 쉬운 Git 강좌 - (하) Github편
소스 코드 관리를 위한 Git 사용법 총 정리
원격 브랜치 가져오기(remote branch)
git에서 원격저장소의 branch 가져오기
원격 저장소 연결 및 끊기 ( git remote )
Git 내용정리 (명령어 정리)
Git remote branch 가져오기