본문 바로가기

CI&CD/GIT

01. Git : Install & Command

 

https://git-scm.com/

 

Git

 

git-scm.com

 

 

 

 

git hub가 main으로 되어있기 때문에 연동을 생각한다면 main으로 설정

 

 

 

 

 

git init

git config --global user.email "cmhh0808@naver.com"

git config --global user.name "mhan"

stating(메모리) 영역으로 옮기기: git add [파일명]

git commit -m "command"

add+commit: git commit -am "command"

git status

git log

git log -p

git log --all --oneline --graph

git checkout [commit ID]

가장 최근 작업으로 이동: git checkout main

git rm --cached 

 


 

git bash 실행

 

git bash 실행 시 아래와 같이 새로운 터미널 창이 뜬다.

 

※ 현재 위치 아래에 git/test 폴더 생성 및 test 폴더로 이동

$ mkdir -p git/test
$ cd git/test

 

 

$ git init

 

 

$ cd .git

 

# test 폴더로 이동
$ cd ..

# trip.txt 파일 생성
$ vi trip.txt

# trip.txt
1. Seoul

 

$ git config --global user.email "1234@naver.com"
$ git config --global user.name "1234"

 

$ git add trip.txt

$ git rm --cached trip.txt

커밋 후 상태 확인

 

참고) add, commit 한꺼번에 진행

$ git commit -am "command"

 

참고) 커밋 메세지 수정

$ git commit --amend

 

로그 확인

 

# trip.txt 파일 수정
$ vi trip.txt

# trip.txt
1. Seoul
2. Busan

 

 

 

# trip.txt 파일 수정
$ vi trip.txt

# trip.txt
1. Seoul
2. Busan
3. Jeju

 

 

$ git log

 

$ git checkout 7a4faabe116eaf4d0a0896f8ef9bef2b5a1ba2d0

 

최근 작업 내용을 돌아가기

 

HEAD 위치 변경

 

working tree 변경X, staging 버전 변경O, repository 인덱스 변경X

$ git reset --soft [commit ID]

 

working tree 변경X, staging 버전 변경O, repository 인덱스 변경O

$ git reset (--mixed) [commit ID]

 

working tree 변경O, staging 버전 변경O, repository 인덱스 변경O

$ git reset --hard [commit ID]

 

git log

git reset --mixed

 

log 확인

 

파일 내용 확인 (변경 사항 없음)

 

git commit (git add 필요)

 

git status (git add 필요)

 

git add 후에 git commit

 

다시 돌아와서

 $ git reset e563ee746394243420

 

git reset --soft

 

git log

 

파일 내용 확인 (변경 사항 없음)

 

git status (add 된 상태)

 

git commit

 

다시 돌아와서

 $ git reset e563ee746394243420

 

git reset --hard

$ git reset --hard 9ac861d9d45dd5413b73e

 

파일 내용 확인 (해당 버전으로 파일 내용 변경됨)

 

git log

 

현재 working tree의 파일 내용과 staging 영역의 파일이 동일하므로 변경 사항 없음

 

 


git merge

 

git 폴더 아래에 test 폴더 생성 후 해당 위치로 이동

 

git init

$ git init

 

test 폴더 아래에 kor.txt 파일 생성

$ vi kor.txt

# kor.txt
1. Seoul

 

git add/commit

$ git add kor.txt
$ git commit -m 'main_step1'

 

kor 브런치 생성 후 해당 브런치로 이동

$ git branch kor
$ git checkout kor

 

kor.txt 파일 확인

 

kor.txt 파일 내용 수정

$ vi kor.txt

# kor.txt
1. Seoul
2. Busan

 

git commit

$ git commit -am 'kor_step1'

 

git log

 

 

main 브런치로 이동

$ git checkout main

 

파일 내용 확인 (kor 브런치에서 변경한 내용 반영되지 않음)

 

kor 브런치 merge

 

 

kor.txt 파일 내용 확인 - kor 브런치에서 변경한 내용이 반영된 것을 확인할 수 있다.

 

kor.txt 파일 내용 추가

$ vi kor.txt

# kor.txt
1. Seoul
2. Busan
3. Jeju

 

git commit -am

$ git commit -am 'main_step2'

 

kor 브런치로 이동

$ git checkout kor

 

kor.txt 파일 내용 확인

 

kor.txt 파일 내용 추가

$ vi kor.txt

# kor.txt
1. Seoul
2. Busan
3. Daejeon

 

 

git commit -am

$ git commit -am 'kor_step2'

 

git log 확인

 

main 브런치로 이동 후 kor 브런치와 merge 진행

$ git checkout main
$ git merge kor

 

kor.txt 파일 내용 확인 - 충돌 발생

 

kor.txt 파일 내용 수정

$ vi kor.txt

# kor.txt
1. Seoul
2. Busan
3. Jeju
4. Daejeon

 

git commit -am

$ git commit -am 'merge_kor'

 

git log 확인

 

kor 브런치로 이동하여 kor.txt 파일 내용 확인

$ git checkout kor

 


Reference.

https://blog.naver.com/PostView.naver?blogId=codeitofficial&logNo=221950118036&redirect=Dlog&widgetTypeCall=true&directAccess=false 

 

[코드잇] git reset의 3가지 옵션 제대로 이해하기

여러분은 Git을 쓸 때 git reset 커맨드를 얼마나 자주 사용하시나요? git reset은 HEAD의 위치를 현...

blog.naver.com

 

https://fgh0296.tistory.com/26

 

버전 삭제 및 되돌리기

버전 삭제 특정 과거의 버전으로 돌아가고 그 이후의 버전을 지우고 싶을 경우 돌아가고자 하는 버전의 커밋 일련번호 앞 7자리를 복사하고 다음과 같이 터미널에 입력한다. git reset --hard 커밋

fgh0296.tistory.com