GIT(2)

강병우·2023년 10월 19일

터미널에서 폴더 이동

폴더생성 : mkdir 폴더명
현재폴더 확인(위치 확인) : pwd
상위폴더로 이동 : cd ..
상위폴더의 상위폴더의 상위폴더로 한번에 이동 : cd ../../..
하위폴더로 이동 : cd 폴더명
하위폴더의 하위폴더의 하위폴더로 한번에 이동 : cd 폴더명/폴더명/폴더명

GIT 사용흐름


출처 : https://osteele.com

git status 는 저장소의 최근상태(가장 최근 커밋상태)와 작업폴더 사이의 차이점을 보여준다. git 은 빈 폴더를 무시한다.

rm -rf .git
rm -rf *
git init
git status # 안나옴
touch a
touch b
touch c
git staus # 3개 나옴
mkdir d
git staus # 3개 나옴(d는 안나옴, git 에는 빈폴더를 저장할 수 없기 때문, 즉 git은 빈폴더를 무시한다.)

git add 파일명 -> 특정 파일을 장바구니(index, stage 영역)에 담을 수 있다.

git add a # 파일 a를 장바구니(index)에 담기
git status
git rm --cached a # 파일 a를 장바구니(index)에서 제거
git status
git add b c a # 파일 b, c를 장바구니(index)에 담기
git status
git rm --cached c # 파일 c를 장바구니(index)에서 제거

git status 는 저장소의 최근상태(가장 최근 커밋상태)와 작업폴더 사이의 차이점을 보여준다.

git add .으로 변경파일들을 장바구니에 한번에 담을 수 있고, git reset으로 한번에 뺄 수 있다.

git add .
git status
git reset
git status

user.name 과 user.email 을 세팅해야 커밋이 가능하다.

누가 커밋했는지도 기록되기 때문이다.

git config --global user.email # 사용자 email 확인
git config --global user.email "깃허브에 가입할 때 사용한 이메일 혹은 자주사용하는 이메일" # 사용자 email 변경
git config --global user.name # 사용자 이름 확인
git config --global user.name "깃허브 ID" # 사용자 이름 변경(꼭 깃허브 ID를 안써도 되지만 관례상 많이 그렇게 함.)

git commit -m "커밋 메시지" -> 장바구니(index)에 담긴 파일을 로컬 리포지터리(.git 폴더)에 저장

-m 옵션 사용하는 방법

git add b
git status
git commit -m "b 파일 생성"
git status

-m 옵션 없이 하는 방법

git add b
git status
git commit
(vim 실행, vim 은 터미널용 텍스트 편집기)
a # 입력모드로 전환
b 파일 생성
Ctrl + C # 명령라인모드로 전환
:wq! + 엔터 # 저장 후 종료, 여기서 :q! + 엔터 를 하면 저장하지 않고 vim 이 종료
(vim 종료)
git status

저장소(repository)를 지우고 다시 만드는 방법

rm -rf * # 모든 파일 삭제(숨김파일 제외)
rm -rf .git # 깃 리포지터리(저장소) 제거
git init # 다시 저장소 생성

git log 에 --oneline 옵션 -> 간략하게 커밋기록들을 볼 수 있음

touch a
touch b
touch c
git add a
git commit
#vim 실행, vim 은 터미널용 텍스트 편집기 입니다.
a # 입력모드로 전환
a 파일 생성
Ctrl + C # 명령라인모드로 전환
:wq! + 엔터 # 저장 후 종료, 여기서 :q! + 엔터 를 하면 저장하지 않고 vim 이 종료 됩니다.
#vim 종료
git log
git status
git add .
git status
git commit -m "b, c 파일 추가"
git log
git log --oneline

git checkout 으로 커밋간 이동을 할 수 있음

git log --oneline
git checkout 최초커밋코드 # 과거로 돌아감
ls # 파일 a 만 존재함
git checkout main # 현재로 돌아옴
ls # 파일 a, b, c

원격 리포지터리를 두면 협업도 할 수 있고, 개인이 여러곳에서 작업하는 것도 가능

github settings 에서 기본 브랜치를 master 에서 main 으로 변경

  • master -> main으로 변경되는 과도기에 있기 때문에 main으로 통일하기 위함

github 를 통해서 원격 리포지터리 생성

리포지터리 생성 - https://github.com/new
리포지터리 명 : demo-2023-10-19 #예시
리포지터리 - https://github.com/jhs512/demo-2023-10-19

로컬 저장소를 원격 저장소와 연결 후 push

git remote -v # 연결되어 있는 원격 리포지터리 목록, 현재는 없음
git remote add origin https://github.com/jhs512/demo-2023-10-19 # 원격 리포지터리 연결
git remote -v # 연결되어 있는 원격 리포지터리 목록, origin 출력됨
git push origin main # 현재 로컬 저장소의 main 브랜치를 원격지 중 origin 으로 보낸다. origin 에도 main 브랜치가 생성됨

회사 PC(git-work2)에서 깃허브에 있는 리모트 리포지터리로부터 pull

git init
git config --global init.defaultBranch # 확인
git config --global init.defaultBranch main # 안되어 있으면
git config --global user.email # 사용자 email 확인
git config --global user.email "깃허브에 가입할 때 사용한 이메일 혹은 자주사용하는 이메일" # 안되어 있으면
git config --global user.name # 사용자 이름 확인
git config --global user.name "깃허브 ID" # 안되어 있으면
git remote -v # 연결되어 있는 원격 리포지터리 목록, 현재는 없음
git remote add origin https://github.com/jhs512/demo-2023-10-19 #예시, 원격 리포지터리 연결
git remote -v # 연결되어 있는 원격 리포지터리 목록, origin 출력됨
git pull origin main # origin 에 있는 main 브랜치의 내용을 현재 리포지터리(저장소)의 메인 브랜치에 복사(다운로드)

git init, git remote add origin ~, git pull origin main, 이 3개의 명령어를 한번에 수행하는 git clone

git clone https://github.com/jhs512/demo-2023-10-19 . #예시, git init, git remote add origin ~, git pull origin main 까지 한방에 수행


0개의 댓글