일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 리눅스
- hash-object
- commit
- docker
- brew
- Linux
- JS
- Git내부
- git rm --cached
- npm
- spring boot
- staged
- unmodified
- node.js
- Modified
- Dependency Management
- 자바스크립트
- Dependency
- node
- git
- github
- git rm
- Spring
- Git 내부
- docker daemon
- Auto-Importing
- git push
- SpringBootApplication
- maven
- Server Off
- Today
- Total
목록전체 글 (40)
갓태희
rebase란 몇개의 커밋들을 새로운 base commit으로 합치거나 이동시키는 과정입니다. 아래 설명들을 모두 보시고 나서 이 뜻을 다시 헤아려 보시면 이해가 잘 되실겁니다 아래 그림부터 보겠습니다. 위 그림은 Release Branch에 Rcommit1, Rcommit2, Rcommit3 총 3개의 커밋이 있는상황이고 Feature Branch는 Fcommit1, Fcommit2 이렇게 2개의 커밋이 있는 상황입니다. 이때 Feature 브랜치는 Rcommit1만 존재했을때 만들어진 브랜치이며 Rcommit1으로부터 만들어진 브랜치임에 주목합니다. 그리고 나서 feature 브랜치에 Fcommit1, Fcommit2 총 두개의 커밋이 추가되었고 저희의 목표는 Feature branch에 Releas..
이 분의 고민은 현재 자기가 로컬에서 두개의 브랜치를 사용하고 있는데 이걸 푸시한다면 원격(깃헙)에는 두개의 브랜치가 모두 올라가느냐 라는 질문인데, git push origin master 우리가 흔히 보던 push명령어 인데 이 명령어의 형태는 원래 git push [리모트이름] [브랜치이름] 이다. 즉 push하고싶은 리모트도 우리 맘대로 설정할수 있고 올리고싶은 브랜치도 우리 마음대로 할수 있다는 것이다. 그래서 보통 원격(깃헙)에 한번 올리고 나면 오픈소스가 되어버리니까 혹시 private한 소스코드를 가지고싶다면 private branch를 하나 따서 그냥 그 브랜치는 push하지 않고 계속 로컬에서만 사용하면 된다. private branch라고 해서 특별한게 아니라 그냥 git branch..
오픈톡에서 어떤분이 질문을 해주셨는데 요점은 특정 파일 혹은 폴더만 push 할수 있는지여쭤보셨다. 나같은 경우 gid add *으로 그냥 일일이 변경된 내용을 체크하기 귀찮아서 저 명령어를 통해 다 스테이징 영역에 올리는데 이렇게 다 스테이징 영역에 올려버리니까 커밋도 모든 파일이 되는 경우가 많았고 보통 push를 전체적으로 하지 부분만 해본적은 별로 없었던것 같아서 처음 저 말을 듣고 좀 당황했었다. 소스트리나 다른 내장되어있는 깃 툴을 이용하게 되면 자기가 스테이징하고싶은 파일을 쉽게 볼수 있고 버튼을 눌러서 일일이 하거나 복수선택으로 스테이징 할수있는데 커맨드로도 그렇게 물론 할수 있지만 귀찮아서 걍 다 올려버리는 경우가 많았던것 같다. 결론을 할수있다이며 git add를 할때 자기가 push ..
깃 버전을 2.23.0에서 2.31.1로 업데이트를 하고나서는 git의 default branch가 main인것을 확인할수 있었는데 git config --unset --global init.defaultBranch명령어를 통해 default branch를 삭제해보고 git init을 해보았는데 다음과같은 경고 메시지가 떴다. master를 default branch로 쓰고 있다는 내용인데 깃에서도 이제 master브랜치를 권고하고있지 않는것 같다. 그래서 다시 git config --global init.defaultBranch main명령어를 통해 main으로 default branch를 설정해 주었다. 근데 업데이트하고나서 한가지 맘에 안들었던 것이 갑자기 명령어들의 출력이 한글로 된다는것이었다. ..
깃허브는 이제 완벽하게 main브랜치를 사용하는데 내 로컬에 설치되어있는 git은 아직도 master브랜치를 사용해서 브랜치명이 헷갈린다던지 원격레포에 main과 master가 동시에 있는 레포가 많게되었다. 그래서 git --version명령어로 나의 깃 버전을 확인해 보았는데 다음과 같았다. 맥북을 산지 2년정도가 되가는거같아서 그리고 깃을 그때는 아예 모를때라서 내가 깃을 설치한건지 아니면 맥OS 자체에 기본내장되어있는건지 기억은 안나지만 아무튼 나의 git버전은 2.23.0이였고 git 공식 홈페이지에서의 최신버전은 아래와 같이 2.31.1이었다. git config --global init.defaultBranch main이라는 명령어가 2.23.0버전에선 전혀 먹히질 않았다. 그래서 뭔가 최신..
노드의 3가지 특성인 이벤트 기반, 논 블로킹 I/O, 싱글 스레드에 대해서 알아보겠습니다. 이벤트 기반 대부분의 프로그램(웹페이지, 게임, 한글과 컴퓨터)들은 잘 생각해보면 모두 이벤트 기반으로 동작을 하는것을 알수있습니다. 이벤트 기반은 사용자와 상호작용 하는것을 말하는데 실제 예를 들어가면서 설명하겠습니다. 우리가 가장 많이 접하는 이벤트로 마우스클릭이 있습니다. 모든 프로그램에 있는 닫기버튼, 최소화버튼, 최대화버튼은 각각 버튼을 클릭하면 닫기, 최소화, 최대화라는 기능을 실행합니다. 언제 어느때나 클릭해도 같은 버튼들은 같은 기능을 제공합니다. 이런게 가능한 이유는 콜백 함수를 메모리에 등록시켜놓았기 때문인데 이 콜백함수는 각각의 버튼에서 닫기, 최소화, 최대화의 기능들을 수행합니다. 이러한 기..
NodeJS란 ? 크롬 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임입니다. 라고 정의가 공식 홈페이지에 나와있다. 위의 정의를 가지고 하나하나 따져보면 흔히들 노드를 서버라고 많이 말을해서 노드를 서버로 알고있는 사람이 많은데 위의 Node의 정의를 보면 서버라는 말이 하나도 안나와 있는것을 확인할수 있다. 즉, 노드는 서버가 아니다 그럼 노드는 자바스크립트 엔진일까 ? 노드는 자바스크립트 엔진도 아니다. 자바스크립트 엔진은 여러가지 가 있겠지만 적어도 크롬에서의 자바스크립트 엔진은 V8을 사용하며 이것은 노드가 아닌 엔진이다. 그럼 도대체 Node는 무엇인가 ? 노드는 V8이라는 자바스크립트 엔진위에서 돌아가는 런타임이다. 즉 노드는 자바스크립트를 실행시켜주는 역할을 한다. 앞으로 배우겠지만 ..
Git LifeCycle - Untracked 와 Git LifeCycle - (2) 이 두가지의 게시글을 작성하면서 git add와 git commit의 옵션들을 사용하는 법과 개념이 명확히 잡혀있지 않다는것을 느껴 따로 정리하는 글을 작성하였습니다. git add git add는 작업 디렉토리(working directory)상의 변경 내용을 스테이징 영역(staging area)에 추가하기 위해 사용하는 Git 명령어 입니다. 파일과 폴더를 모두 arguments로 받습니다. 또한 git add는 Untracked상태의 파일을 Tracked상태롤 바꿀때와 not staged상태의 파일을 staged상태로 바꾸어줄때 사용하며 Merge한 파일중 충돌난 상태의 파일을 Resolve상태로 만들때 또한 사..