7777

  • 7777 커밋

vscode git undo last commit

  • 오…
  • alias.r1=! r1() { git reset --soft HEAD~1 ; } ; r1
  • 나는 평소 이런 식으로 이전 커밋을 되돌렸다
  • 직접 치려면 많이 긴 명령어라 줄여서 사용했는데,
  • 이제는 undo last commit명령을 알아서 애용할 것 같다

참고

1일 1커밋 소스

1일 1커밋하는데 무슨 내용을 커밋하는 걸까?

1일 1커밋 소스

  • 블로그
  • 코테 연습
  • 공부용 프로젝트
  • 영단어
  • 리팩토링
  • 매일 같인 커밋하기로 정해둔 하나의 레포가 있는 것은 아니다
  • 주로 블로그 포스트, 코딩 테스트 연습할 때 사용하는 레포에 자주 커밋을 하고 있다
  • 그 외에는 최근에 공부하는 nestjs, nextjs 공부용 프로젝트도 있다
  • 1일 1커밋을 지켜온지 이제 거의 일 년이 되어간다
  • 1일 1커밋 초기에는 영단어 외우는 레포에 매일 영단어 정리했었다
  • 블로그를 시작하면서 매일 배우는 것들을 블로그 포스트로 올리고 있다
  • 특히 블로그를 깃허브 블로그로 시작하면서 잔디 관리에 큰 도움이 되었다

깃허브 블로그

  • 글을 쓸 때는 최대한 고민 안 하고 쓰는 편이다
  • 뭔가 새로운 활동이 있으면 바로 블로그에 초안 작성을 시작한다
  • 내 개발 기록을 내 나름대로 정리해서 블로그에 남겨놓으면,
  • 나중에 관련 지식이 필요할 때, 구글에서 검색하는 게 아니라 내 블로그에서 검색을 할 수 있다
  • 다른 사람도 아니라 내가 작성한 글이기 때문에 빠르게 이해하고 탈분극 시킬 수 있다

커밋 메시지 작성을 도와줄 확장도구 vscode-conventional-commits

상황

  • 기존에 Visual Studio Code Commitizen Support 확장 도구를 사용하고 있었다
  • 그런데 커밋 body에 적는 내용이 어째선지 반영되지 않았다…
  • 관련해서 구글링을 해봤는데 도움되는 내용을 찾지 못했다
  • 그러다가 다른 확장도구를 발견했다

Conventional Commits

  • Conventional Commits이라는 확장도구이다
  • 사용법은 Commitizen과 동일하다
  • 이 확장도구를 사용하면 body(description)가 정상적으로 등록된다!

참고

git commit push 명령 합치기

  • git commit 이랑 git push 명령을 합치고 싶은 욕구가 생겼다
1
git config --global alias.acp '! acp() { git commit -a -m "$1" && git push ; } ; acp'
  • git bash를 열고 위 명령을 수행한다
  • acp란 이름으로 git alias를 추가한다
  • --global옵션을 줘서 어디서든 실행될 수 있도록 한다
  • --global옵션을 주지 않으면 현재 깃 디렉터리에만 적용이 된다
1
git acp "커밋 메시지"
  • 이런 식으로 사용한다

참고

.gitignore 써서 커밋 가볍게 하기

  • 깔끔하게 코드 공유하기, 숨겨야하는 파일 숨기기!

따라하기

준비물

  • 깃허브 데스크탑
  • 이클립스 (java IDE)

샘플 자바 프로젝트 만들기

  • 이런 구조의 자바 프로젝트가 있다
    .
    ├── .settings
    │ └── org.eclipse.jdt.core.prefs
    ├── bin
    │ ├── HelloWorld.class
    │ └── Tmp.class
    ├── src
    │ ├── HelloWorld.java
    │ └── Tmp.java
    ├── .gitignore
    ├── .classpath
    └── .project

  • .java 파일은 컴파일 과정을 통해 .class 파일이 된다

  • 코드를 공유할때 java파일만 있어도 충분히 공유 받은 사람이 컴파일해서 사용할 수 있다

  • .class 파일은 공유할 필요가 없는 것이다

  • .gitignore 파일이 빈파일이라고 하면 총 8개의 파일이 트랙된다

.gitignore에 *.class추가하기

.gitignore
1
*.class
  • .gitignore 에 위 내용을 추가하면
  • 이렇게 .class 파일이 빠지고 6개 파일만 트랙된다
  • 이렇게해서 내 로컬에는 남아있지만 깃에서는 무시된다

깃허브 데스크탑에서 gitignore 파일 추가하기

  • Tmp.java는 내가 혼자 막 테스트하느라 임시로 생성한 파일이라고 해보자
  • 다른사람이 봐도 아무 의미가 없는 파일이라면 .gitignore에 추가해준다
  • 깃허브 데스크탑에서 우클릭으로 무시 목록에 추가해보았다
  • 그러면 이렇게 자동으로 .gitignore이 업데이트 된다
  • 이렇게 Tmp.java가 무시되어 5개만 트랙되는 모습니다

  • 이런식으로 특정 파일을 골라서 무시할 수 있다

  • 이제 init이라는 커밋 하나를 해보겠다

이미 커밋한 파일 gitignore하기

  • HelloWolrd.java를 수정했다.
  • 근데 HelloWolrd.java도 .gitignore에 추가해야할 거 같아서 Tmp.java와 같은 방법으로 무시하기를 했는데…
  • .gitignore에 분명이 추가되었지만 여전히 트랙되고있다…
  • 이미 한번 커밋된적이 있는 파일들을 새로이 .gitignore에 추가했을때 생기는 문제다
  • 이럴 때는 터미널에 git rm -r --cached .명령을 통해 캐시를 삭제하고..
cmd
1
git rm -r --cached .
  • 깃허브 데스크탑으로 돌아와보면 이렇게 제외되있는걸 확인할 수 있다
  • 초록색 + 표시는 무시해도된다. 이미 커밋되었지만 캐시가 삭제되서 다시 나타난 거다

여기까지 커밋 내역

  • 이렇게 하나씩 수동으로 무시할 파일을 지정하는 방법이 있지만
  • 프로젝트 구조가 비슷하기 때문에 사람들이 미리 정의해둔 .gitignore을 쓰면 편리하다
  • 깃허브 데스크탑에서 로컬 저장소를 생성할때 gitignore을 설정하는데 그렇게 쓰는 방법도 있고,