2025/04 23

[Git & Github] 16-2. git push -f

git push -f (git push --force)로컬 브랜치의 변경 사항을 강제로 원격 저장소에 덮어쓰는 명령어이다.보통은 로컬 브랜치의 커밋 히스토리를 변경(예: rebase, amend) 한 후에 사용된다. ⚠️ 왜 "강제(push -f)"가 필요한가? Git은 기본적으로 push 할 때, 원격 브랜치가 로컬 브랜치의 조상이 아닐 경우 push를 거부한다.(= 히스토리가 "앞으로"만 가야지, "되돌리면" 위험하다고 보기 때문이다.) 하지만 git commit --amend, git rebase, git reset 같은 작업은 커밋 해시를 변경하므로 push 하려면 -f 옵션이 필요하다. 📘 예시: amend 후 push -f 1. 이미 커밋을 pushgit commit -m "Fix bug..

[Git & Github] 16-1. git commit --amend

🔧 git commit --amend 가장 마지막 커밋을 수정하는 명령어 (가장 최근 커밋)커밋 메시지, 내용, 또는 둘 다를 덮어쓰기 방식으로 수정실수로 커밋 메시지를 잘못 썻거나, 파일을 빠뜨렸을 때 유용하다 📘 예시 1: 커밋 메시지만 수정 1. 기존 커밋 확인git log --oneline -1> e1a2b3c Fix login bug→ 실제로는 로그인 버그가 아니라 "로그인 UI 수정"이었을 때 2. 커밋 메시지 수정git commit --amend● 편집기가 열리면 메시지를 수정Fix login UI layout● 저장하고 종료하면 커밋 메시지가 업데이트된다. 📘 예시 2: 빠뜨린 파일을 추가하고 커밋 수정 1. 파일을 농친 경우git add missing-file.jsgit comm..

[Git & Github] 16. Interactive Rebase를 사용하여 히스토리 삭제하기

Nice To Have ● 커밋 재작성 ● 커밋 수정 및 스쿼싱 (결합) ● 커밋 삭제 rebase -i 명령어를 통해서 이미 존재하는 커밋 이력을 편집, 조작할 수 있다. reword, edit 등 수정사항이 여러개라면 각 커밋마다 작업을 순차적으로 해주어야 한다.변경 작업이 완료되면 커밋 해시가 바뀌게 된다. 즉, 작업 대상의 커밋들이 모두 재생성 되었다는 얘기이다.추가로 특정 브랜치를 지정하지 않고 현재 HEAD가 위치한 브랜치를 기점으로 리베이스를 하게된다. git rebase -i [commit-hash] pick : 커밋 유지reword : 커밋 유지. 단, 커밋 메시지만 재작성edit : 작업과 커밋 메시지 모두 재작성fixup : 이전 커밋과 병합. 단, 커밋 메시지는 병..

PC 클립보드 - 복사 기록 +: 클립보드 기록을 위한 최고의 도구

https://chromewebstore.google.com/detail/%EB%B3%B5%EC%82%AC-%EA%B8%B0%EB%A1%9D-+-%ED%81%B4%EB%A6%BD%EB%B3%B4%EB%93%9C-%EA%B8%B0%EB%A1%9D%EC%9D%84-%EC%9C%84%ED%95%9C-%EC%B5%9C%EA%B3%A0%EC%9D%98-%EB%8F%84/kjlbbjicboihbikbjbbmkimccoeccoon?hl=ko 복사 기록 +: 클립보드 기록을 위한 최고의 도구 - Chrome 웹 스토어복사 기록, 클립보드 기록, 복사 기록 관리. 무료, 쉽게. 자동으로 저장, 저장, 복사된 텍스트 수집. 생산성 향상, 시간 절약.chromewebstore.google.com클립보드용으로 사용하기 좋다...

스프레드시트 스크립트 확장 프로그램 - Black Apps Script

https://chromewebstore.google.com/detail/black-apps-script/lobpcflajoikohefjjdndofbfikadpfb?hl=ko Black Apps Script - Chrome 웹 스토어This extension brings new functionality to the Google Apps Script Monaco Editorchromewebstore.google.com자바스크립트로 스프레드시트를 조작하게 해주는 확장 프로그램이다.매크로를 만들어 단축키로 등록할 수도 있으며 반복 작업이 많이 발생하는 작업에 대해서도 프로그램을 만들어 해결할 수 있다.

찾기 및 바꾸기 기능 - Find & Replace for Text Editing

https://chromewebstore.google.com/detail/find-replace-for-text-edi/mogefjlnnldblkakpbakdaffphhjfjba?hl=ko Find & Replace for Text Editing - Chrome 웹 스토어Adds search & replace tool for input fields and editable text content.chromewebstore.google.com 블로그에서 특정 단어에 대해 일괄로 변경할 때 사용하면 편하다.사용해보니 마우스 커서가 있는 영역에 대해서 단어를 인식 하는 것 같다.

[Git & Github] 15. 리베이스(Rebase)는 가장 까다로운 명령어일까?

Important ● 리베이스와 병합의 차이 ● git rebase ● 리베이스를 쓰지 말아야 할 상황 * 리베이스?병합?협업 과정에서 각자 피처 브랜치를 이용해 작업하는것을 이제는 안다. 여기서 내 작업이 끝나기 전에 누군가의 작업물이 메인 브랜치에 올라간 경우 변경사항을 최신으로 유지하기 위해서 나의 피처 브랜치에 pull을 해야 할 것이다. 이 때 병합 커밋이 필연적으로 발생할텐데 이런 경우가 아주 빈번하게 발생한다면 나의 작업과는 관계없는 병합 커밋이 많이 생기게 되어서 이력이 지저분해 질 것이다.🔧 기본 사용법: git rebase git rebase main위 명령은 현재 브랜치의 커밋들을 main 브랜치 끝에 다시 적용한다.목표: feature 브랜치를 main의 최신 상..

[Git & Github] 14. Git 협업 워크플로우

Critical ● 중앙 집중형(단일 브랜치) 작업의 문제 ● 피처 브랜치의 워크플로우 ● 풀 리퀘스트(Pull Requests, PR) ● 포크(Forks) ● 포크와 클론의 워크플로우Important ● 브랜치 보호 규칙 중앙 집중형 워크 플로우에서는 모든 사람이 단일(주로 main) 브랜치에서 작업한다.원격 및 로컬 저장소에서 단일 브랜치를 사용한다면 협업에 큰 문제가 생길 수 있다. 예를 들어서 미완성된 작업물에 대해 도움을 받기 위해 공유를 위해서 push를 하게 되면 브랜치가 하나밖에 존재하지 않기 때문에 미완성된 작업물 그대로 브랜치에 커밋이 되어버린다. 이렇게 되면 모두가 미완성된 작업물을 가지게 되므로 아주 큰 문제가 발생한다. 브랜치가 단일로 존재하기 때..