일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- TypeScript
- leetcode
- npm
- BOJ
- loop
- var
- docker
- generic
- machine learning
- C++
- C#
- property
- nginx
- bash
- AI
- 보안
- 앙상블
- security
- webpack
- type
- vuetify
- VUE
- Clone
- git
- condition
- dotenv
- vue.js
- Python
- JavaScript
- scss
- Today
- Total
목록git (9)
ice rabbit programming
Git에서 취소하고 싶은 경우는 생각보다 자주 있다. 이 때 사용하는 것이 reset 명령어이다. add 취소하기 기본적으로 git에서 파일들은 unstaged 상태에 있고, git add 명령어를 통해 stage에 올린다. 이는 commit 이전에 임시로 올리는 공간이라고 생각하면 된다. add를 취소하기 위해서는 다음 명령어를 입력하면 된다. git reset HEAD \[optional : 파일명\] 만약 파일명을 입력하지 않으면 올라갔던 파일 전체가 내려온다. (주의 : rm 명령어는 add의 반대가 아니다! git에서 이 파일을 제거한다는 의미이다.) commit 취소하기 add로 추가한 파일들은 git commit 명령어로 commit한다. commit을 되돌리고 싶은 경우는 commit 자체..
한 commit의 변경 사항을 가져오고 싶은 경우가 종종 있다. feature/major-a에 적용한 것을 feature/major-b에 적용하기 위해 가져오거나, 아직 머지하지 않은 브랜치에 master 변경 사항을 가져오고 싶은데 불필요한 커밋이 있는 경우 등이다(사실 PR이 널리 사용되는 git 생태계에서 후자같은 경우는 많이 없을 것이고, 전자가 대부분일 것이다). 그럴 때 사용할 수 있는 기능이 cherry pick이다. 단어 그대로 한 커밋만 골라서 가져오는 기능인데, 아주 쉽게 사용할 수 있다. git cherry-pick {commit-hash} 와 같이 입력하면 적용된다. git cherry-pick 338cebf 물론 체리픽 과정에도 conflict가 발생할 수 있고, 이는 직접 해결해..
요즘 Github를 사용할 때 Logon failed, use ctrl+c to cancel basic credential prompt. 라는 문구가 계속 뜨면서 ssh를 통한 로그인을 필요로 하길래, 불편해도 뭔가 바뀌었나 싶어서 그대로 쓰고 있었다. 그런데 github에서 패스워드를 이용한 로그인을 8월부터 제공하지 않는다고 이메일이 왔다(관련 참고 : relz.tistory.com/36 ). token 기반으로 바꾸라는 메일을 보고 문득 이전에 token을 발급해서 썼었고 그 때에는 별다른 로그인 과정을 거치지 않았던 기억이 나서 검색을 해보니 로컬의 git과 github의 버전이 맞지 않는 이슈였다. git 설치가 되어있지 않다면 git 홈페이지에서 다운을 받아 설치하면 된다. git update..
feature 브랜치에 대해서 체크를 하고 싶다거나, 동일 프로젝트에 대해 베타/정식을 운영하는 등 여러가지 사정으로 특정 브랜치만 clone해야하는 경우가 있다. 물론 git에서는 이를 지원하고, 하나의 옵션으로 간단하게 가져올 수 있다. git clone -b "branch_name" --single-branch "GIT_URL" git clone -b develop --single-branch "https://..." -b는 브랜치명을 지정하는 것이고, --single-branch는 단일 브랜치를 가져온다는 옵션이다. 참고로 대쉬 한 개(-)는 약어를, 대쉬 두 개(--)는 옵션의 풀 명칭을 뜻한다. 여담으로 특정 브랜치 pull은 저장소 뒤에 브랜치명만 붙여주면 된다. 브랜치명을 안 붙여주면 모든..
rebase란? rebase의 개념은 간단하게 설명하자면, 커밋의 줄기를 다른 곳에 붙인다고 생각하면 된다. merge와도 유사한 개념인데, 차이점은 새 커밋을 만드느냐(merge), 만들지 않느냐(rebase)의 차이이다. 물론 둘 모두 conflict는 자동 병합이 되지 않기 때문에 수동으로 해결해 주어야 한다. 예를 들어, 커밋 줄기가 아래와 같다고 생각해보자. feature 브랜치와 master 브랜치의 개념에 대해서 알고 싶다면 예전 글을 읽고 오면 좋다. 기본적으로 합칠 때에는 PR을 한 후에 feature에서 master로 merge할 것이다. 그러면 흐름은 아래처럼 그려진다. git checkout feature git merge master 즉, master branch에서 새 commi..
Git은 SVN과 같이 협업이나 버전 관리 툴로 사용되지만, 아마 많은 학생 개발자들이 Git을 처음 접하는 것은 GitHub를 통해서일 것이다. Github는 hub라는 문자 그대로, 오픈소스 프로젝트들이 모여있는 것이다. 비유하자면 프로그래밍판 SNS라고 생각할 수 있겠다. 오픈소스 먼저, 오픈소스란 개념에 대해서 짚고 넘어가자. 오픈소스는 저작권자가 누구나 자유롭게 사용/수정/재배포할 수 있도록 공개한 소프트웨어이다. 이 중에 '누구나 자유롭게'라는 부분 때문에 오픈소스는 그냥 무료인 소프트웨어 정도로 생각하는 사람도 꽤 되는데, 그렇지는 않다. 오픈소스와 반대로 상용 소프트웨어는 Binary 실행 파일만 제공되는데, 무료인 소프트웨어, 즉 상용 프리웨어는 실행 파일만 제공된다. 무료일 뿐, 오픈소..
소스를 다운받거나, 빌드 및 패키징을 진행할 때 clone을 하게 된다. 소스 다운이야 한 번 받으면 이후로는 git pull로 동기화하겠지만, 빌드 서버에서 빌드할 때에는 pull 시에 conflict 등 문제가 생겼을 때 직접 들어가서 봐주는 것이 생각보다 힘들다(귀찮다). 그래서 필자는 빌드 시에 clone한 폴더를 삭제한 후에 재clone하는 경우가 많았다. git clone GIT_URL 위 명령어가 해당 git 원격 저장소를 clone해오는 기본적인 명령어이다. 하지만 master등 default branch가 아닌 특정 branch가 필요한 경우가 꽤나 많다. 예를 들어 빌드/배포 버전이 여러개인 경우, 위상이 다르게 유지되는 branch를 가져와야 한다. git clone -b BRANCH..
이 기능도 학부 때는 몰랐는데, 굉장히 유용한 기능이다. stash는 넣어두다라는 뜻인데, 이름 그대로 commit하지 않고 임시로 넣어두는 것이다. 필자는 다른 브랜치로의 checkout이 필요한데 아직 작업 중일 때 주로 사용한다(작업 중이니 아직 commit이 불가하므로). 만약 commit이나 stash를 하지 않고 다른 브랜치로 checkout 하려고 시도하면 에러가 발생한다. git stash // 작업 중이던 파일을 임시 저장 git satsh save // 위와 같은 동작, 임시 저장 git stash list // 임시 저장된 stak의 list를 본다. git stash apply [이름] // list에서 확인한 이름의 stash를 가져온다. git stash apply // 최신의 ..