TIL 3 days


22.03.31. write

나의 github blog

🖋 이번에 배운 부분

  • git add 후 취소 : git reset HEAD [file]
    file명이 없는 경우에 모든 add를 취소한다.

  • git commit 취소하기
    완료한 commit을 취소하는 경우는 다음과 같다.

  1. 일찍 commit을 한 경우
  2. 올려야하는 파일을 빼먹고 commit하는 경우.
// 올려야하는 파일을 빼먹고 commit했을때 이 명령어를 통해 git commit을 취소할 수 있다.
$ git reset HEAD^
// 1. commit을 취소한 다음 해당 파일들을 staged 상태로 워킹 디렉토리에 보존.
$ git reset --soft HEAD^
// 2. commit을 취소한 다음 해당 파일들을 unstaged 상태로 워킹 디렉토리에 보존. 기본 옵션.
$ git reset --mixed HEAD^
$ git reset HEAD^
$ git reset HEAD~2 // 마지막 2개의 commit을 취소한다.
// 3. commti을 취소한 다음 해당 파일들은 unstaged 상태도 워킹 디렉토리 삭제한다.
$ git reset --hard HEAD^

⭐️ git reset 명령 사용할 때 주의할 점

  • reset 옵션

    • -soft: index 보존(add한 상태, staged 상태), 워킹 디렉토리의 파일 보존이 되어있어야한다.
    • -mixed: index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉토리의 파일이 보존되어 있어야한다. (기본 옵션)
    • -hard : index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉토리의 파일 삭제한다. 즉 모두 취소한다.
  • commit message를 잘못 적었을 경우에 변경하기

$ git commit --amend

워킹 디렉토리를 원격 저장소의 마지막 commit 상태로 되돌리고 싶으면 $ git reset --hard HEAD 하면 되지만.. 원격 저장소에 있는 마지막 commit 이후의 워킹 디렉토리와 add했던 모든 파일이 사라지므로 쓰지 않는게 좋다.

🪡 복습한 부분

  • git flow
  • git branch
  • github issue

📝 복습이 필요한 부분

  • github issue

공부할 것

  • git push 취소하는 방법 (이것은 협업 프로젝트에서 팀원과 상의 후 진행해야하는 아주 주의해야할 부분이지만 알아두기 위해서)

📌 참고 사이트

오늘 하루 되돌아보기

어제 했던 branch와 git flow 공부를 다시 하게 되었다. branch를 직접 해보았을 때, 순서를 잊어서 엉망이 되긴 했지만 그래도 내가 예상했던 결과보다는 엉망이 아니었다. branch와 merge는 해야하는 순서를 잘 기억해두고 계속 연습하다보면 헷갈릴 일은 없을거라 생각한다. branch 연습

branch를 따로 만들어서 merge를 한 다음에 충돌이 일어난 부분을 수정하고 git add, git commit 한 다음에 git push를 했는데도 불구하고 이미 업데이트가 되었다는 부분을 보고 1차 당황, insights network를 보고 해당 브런치가 사라지고 이름표만 남아서 2차 당황했지만.. 분명 내가 어딘가 실수를 했을거라 생각한다. 그러니 다음에도 똑같이 연습해보려고 한다.

git flow는 흐름을 어느정도 이해는 했지만 완벽히 이해된 것 같지 않아서 내일 아침에 시간이 된다면 git flow를 혼자 연습해보아야겠다. 문제는 이제 git issue로 팀원들과 상호 작용하는 부분이겠다. 많은 어려움이 있겠지만 차근차근 끈기있게 하다보면 할 수 있을거라 믿어야겠다.