When to use 이전 커밋 기록을 유지하며 과거 커밋 상태로 돌아가게 해준다. How to use 현재 상태 총 2개의 commit 이 잘못된 커밋이고 이전 origin/main 브랜치로 돌아가고 싶다고 가정하자. (1) 1개씩 되돌리기 HEAD 포인터나 Hash 를 지정해서 1개씩 되돌리는 방식이다. 총 N개의 commit 을 되돌리면 총 N개의 commit 이 추가되어야한다. # 자기 자신 커밋 되돌리기. $ git revert HEAD~0 # 되돌릴 커밋 해시 $ git revert (2) N개 commit 한번에 되돌리기 여기서도 2가지 방법이 있다. # 총 N개 커밋을 되돌린다. # 상태는 되돌아가나, revert commit 은 별도 수동으로 해야한다. $ git revert --no-c..
Git
just the docs 를 통한 Github 블로그 만들기 Windows 10 환경에 깃헙 블로그를 만들어보자. 설정 도중 출력된 에러까지 해결해보자. 1. ruby install RubyInstaller for Windows Is RubyInstaller for you? RubyInstaller is the easiest and most widely-used Ruby environment on Windows. And Ruby is a great language for beginners as well as professionals. It’s suitable for small scripts as well as large applications. RubyInstaller com rubyinstaller.o..
Gitlab CI operation sequence Git push || merge events occurs Start pipeline on Gitlab-Runner Pull images from docker hub Docker instantiate container according to image Git pull repository (target branch) Execute jobs on Gitlab-Runner Report the result to Gitlab-Server Why Gitlab-Runner use Docker as default? Isolation 실제 구동되고 있는 인스턴스와 무관하게 컨테이너에서 동작함. Flexibility Configuration 변경이 자유로움. Docker ..
피씨방에서 개발 환경을 한번에 세팅해주는 툴이 있다면 얼마나 좋을까? 작은 사이드 프로젝트 `auto-setup` 은 이런 생각에서 출발했다. 개발 환경에 필요한 install 파일을 한번에 다운로드 받아서 띄워주는 프로그램. 근데 한가지 문제가 있었다. 이 소스를 실행하려면 Go SDK가 필요했다. 💡 릴리즈를 하자. 애초에 모든 귀찮은 installer 파일을 자동 다운로드 받아주기 위해 만든 것인데 다른 파일(SDK) 을 또 받아야만 실행할 수 있다는 것은 모순이다. 그래서 그냥 바로 다운받아 실행할 수 있게 바이너리 실행파일을 배포해야겠다는 생각이 들었다. Python 이나 Javascript (Typescript) 는 python3, Node.js 같은 실행기가 없으면 실행되지 않는다. 그래서 ..
제목 그대로 서로 다른 2개의 repository 를 합쳐보자. 1. Base repository 열기 우선, 베이스 레포지토리를 연다. 2. 합칠 원격 repository를 추가한다. 3. Fetch from target repository 4. Integration 전용 branch 생성 그냥 베이스 브랜치에서 checkout 해도 된다. 5. Merge & Resolve conflict ⚠️ 서로 다른 저장소의 커밋 히스토리를 합치려(merge)하므로 에러가 발생한다. --allow-unrelated-histories 옵션을 주면 해결할 수 있다. 대부분 merge 하고나면 CONFLICT 에러가 발생할텐데 여기서는 수작업 하는 수 밖에 없다. 6. git push 이정도는 할 줄 알잖아? 7. 이..
🔒 문제 상황 다른 컴퓨터에서 버전 관리 작업을 하다가 이런 식으로 user.name, user.email 을 설정하지 않은 채 commit을 해버리는 경우가 있다. 🔑 해결 방법 1. Interactive Rebase # 여기서의 COMMIT-HASH 는 # 내가 변경하고자 하는 커밋 이력의 '전' COMMIT 이어야한다. $ git rebase -i [COMMIT-HASH] 여기서는 'b19d6cc', 'aca3ccd' 의 commit 이력을 변경하고 싶다면 그 이전인 'c4f4bba' 로 rebase 해야한다. 2. edit 변경 대상 commit rebase -i 이때 commit 해시 앞에 'pick' 이 기본적으로 붙어있는데 'edit' 으로 변경해주면 해당 commit을 변경할 수 있다. 3..