[ Git ] Git 명령어 정리 - 수정중

 

github을 사용하지 않았던 기존 project를 github repo에 올리기

출처 : injeblog.tistory.com/14

 

git branch -D <브랜치명> 브랜치 삭제

삭제할 브랜치 명이 feature/login 으로 가정

$ git checkout master 

$ git branch --delete feature/login

출처 : velog.io/@noyo0123/git-명령어-정리-에러정리-znk1zz2k5e

 

원격 브랜치 삭제

$ git push origin --delete feature/sth

출처 : https://www.lesstif.com/gitbook/git-20776547.html

 

git add . 중 특정파일은 커밋X

git reset <파일이름>

 

커밋 취소

출처: https://stackoverflow.com/questions/3528245/whats-the-difference-between-git-reset-mixed-soft-and-hard

git reset --hard : 최신커밋 파일 자체 사라짐.
최신 commit의 변경사항이 사라짐.

git reset --soft : 최신커밋이 취소되고 변경사항이 staged 상태로 되어있음 ( git add . )한 상태

git reset --mixed : 최신커밋이 취소되고 변경사항이 unstaged 상태로 되어있음 ( 파일을 save한 상태 )

레퍼런스 : https://git-scm.com/book/ko/v2/Git-%EB%8F%84%EA%B5%AC-Reset-%EB%AA%85%ED%99%95%ED%9E%88-%EC%95%8C%EA%B3%A0-%EA%B0%80%EA%B8%B0

https://opentutorials.org/module/4032/24533

cherry-pick

특정 커밋만 빼고싶다면?

  • f05c9e6 (HEAD -> addCart)
  • d2af8ec ~~~
  • 99fa955 ~~~ <- 요 커밋의 수정내용만 빼고싶다면?
  • 765f8cd ~~~

git checkout -b addCart-backup // 백업 브랜치를 만듭니다.
git reset --hard 765f8cd한 후에 99fa955커밋에서 수정한 내용을 원래대로 돌려놓고
git cherry-pick d2af8ec
git cherry-pick f05c9e6
을 하면

* f05c9e6 (HEAD -> addCart)

* d2af8ec ~~~

|--> 백업브랜치

* 765f8cd ~~~

로 될겁니다.

이제 백업브랜치 제거하고 

git push <remote origin(원격저장소 명칭)> addCart --force 

원격저장소에 있는 git history가 다를거기때문에 push가 안됩니다.

--force로 강제로 밀어넣습니다.

 

git rm

[ rm <파일> 하고 git rm <파일> 차이 ]
git rm <파일> rm <파일> git add <파일>을 한번에 할 수 있대요.
파일을 지우면 끝인데 왜 git add <파일> 하냐고요? git 그렇게 생겨먹었어요.
파일을 다 tracking해요. 그래서 제거해줬으면 git add <파일> 하시면 git status 명령어로 파일도 제거하고, git이 tracking을 안하는 것을 볼 수 있습니다.

레퍼런스 : Why use 'git rm' to remove a file instead of 'rm'? - stackoverflow

 

git reflog

 

 

 

 

 

 

 

출처 : velog.io/@noyo0123/git-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC-%EC%97%90%EB%9F%AC%EC%A0%95%EB%A6%AC-znk1zz2k5e