git 명령어(Rename, Undo, Edit, Reset, Revert)
Rename
존재하는 파일 이름을 변경
$ git mv {변경할 파일} {변경할 이름}
- 주의: 명령 앞에 git을 붙이지 않으면 deleted, new file이 된다.
- 파일의 history를 남기기 위해서는 삭제 후 생성이 아닌 이름 바꾸기로 추적한다.
- 이름 변경 한 것을 다시 되돌리고 싶으면 원래 이름으로 다시 되돌려 놓으면 된다.
Undoing
복구 - 되돌리기
$ git restore {파일명}
$ git restore . // 현재 위치 아래에 있는 모든 파일 복구
- working directory에서 일어난 변경사항을 되돌리기
- 참고) git work flow:
working directory 작업 -> stage로 add -> add된 blob에 대해서 commit 메시지를 작성해서 commit 완료 -> local repository에서 push를 하여 remote repository로 넘기는 과정
- 참고) git work flow:
Edit
방금 commit 메시지 수정하기(오타, 내용 첨부 등..)
$ git commit --amend
--amend
플래그를 사용하면 직전의 커밋을 열려서 메시지 수정 가능
-
특정 commit 수정 x, 되돌려야 함(rebase)
- Rebase 방법은 비추천. 가능은 하지만 이전 커밋도 수정할 수 있다는 것을 알면 commit 메시지 작성할 때 대충할 가능성이 커짐(git은 문서화, history 가 중요하니, 할 때 긴장감 갖고 신경써서 입력하는 것이 좋다.)
Unstaging
Reset
git add
을 함으로써 스테이지에 올려진 것을 내리는 명령어
$ git reset HEAD {내릴 파일명}
-
HEAD: 현재 브랜치를 가리키는 포인터
-
git reset HEAD
는 최신의 commit 또는 branch를 지움 -
reset 할 때,
--hard
옵션은 reset 명령을 위험하게 만드는 유일한 옵션이다. 매우 매우 중요하니 사용에 유의 -
reset 명령어는 협업 시 주의
-
Unstaging and Remove
$ git rm -f {파일명}
협업 Best case: Revert
협업 시 Best case는 Reset(취소)이 아닌, Revert(되돌리기)다.
👍🏻 Best case: Revert
-
$ git revert
명령어를 사용한다면 특정 커밋을 되돌리는 작업도 하나의 커밋으로 간주하여 커밋 히스토리에 추가하는 것이므로, 모든 팀원에게 이 사항을 공유할 수 있음.$ git revert --no-commit HEAD~3..
-
되돌리고 싶은 커밋의 범위를 인수로 입력해주면 복수개의 커밋에 revert 한다.
-
commit을 따로 안할땐
--no-edit
-
merge commit을 되돌릴 땐
-m
$ git revert -m {1 or 2} {merge commit id} ) // git show에서 보여지는 Merge: 번호)
👎🏻 Worst case: Reset
- 다른 cloned repo에 존재하던 commit log로 인해 pull 받으면 파일이 다시 살아남
- 과거 이력이 사라져 commit log tracking이 힘들어짐
- 혼자 하는 프로젝트에는 괜찮음
Reference
[Git - Reset 명확히 알고 가기]
[원격 저장소에 올라간 커밋 되돌리기]
Author And Source
이 문제에 관하여(git 명령어(Rename, Undo, Edit, Reset, Revert)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yejine2/git-명령어Rename-Undo-Reset-Revert-Edit저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)