BEB 07 1-3

Donghun Seol·2022년 9월 16일
0

코드스테이츠 BEB 07

목록 보기
3/39

Linux기초, NPM, NVM

  • 기초적인 내용이라 별도로 포스팅 하지 않음

arguments notations

명령어나 함수의 명세를 볼 때마다 헷갈렸는데, 정리하고 넘어가자.
대괄호와, 부등호는 꼭 숙지하고 잘 읽고, 잘 쓰자!!

  • square brackes [optional option]
  • angle brackets <required argument>
  • curly braces {default values}
  • parenthesis (miscellaneous info)

Git Workflow

ssh 등록

ssh-keygen
cat ~/.ssh/id_rsa.pub #"id_rsa" file contains PRIVATE key

# paste your public key to
# github.com > settings > SSH and GPG...

gh cli

brew install gh
gh auth login
# follow browser auth instructions

Git Basics

Git FLOW 숙지하기

  • unmodified
  • modified
    • unstaged
    • staged git add <filename>
  • committed git commit -m <"commit message">
  • pushed

git restore

  • restore : commit 또는 staged 되지 않은 local의 변경사항을 폐기, retore할 파일을 지정해야 한다.

  • git add로 staged 된 파일은 git restore --staged <filename> 해야 한다.

  • 만약 같은 파일이 staged와 unstaged를 동시에 가질때, git restore <filename> 실행하면 unstaged된 상태의 변경사항만 되돌려진다.

git reset

  • local에서 커밋된 내용을 되돌리기 위해 실행하는 명령어
  • git reset은 기본적으로 --mixed 옵션으로 동작한다.
  • --soft는 헤드만 해당 커밋으로 이동하고 파일에 아무런 변화를 주지 않음
  • --hard는 unstaging 해주고 변화는 유지한 안전한 과정없이 바꿔버린다
  • git reset --mixed && git retore . == git reset --hard
  • git reset HEAD^ ^은 한 커밋 뒤를 의미한다.
  • 기본적으로 해당 커밋의 변경내용이 삭제되지는 않고 unstaged(git reset --mixed) 된 상태로 돌아가므로, git restore <filename>을 한번 더 수행하면 완전히 변경내용이 사라진다.
  • git reset이 적용된 내용을 또 취소하고 싶으면 git reflog에서 돌아가고픈 커밋의 위치를 파악하고 아래 둘중 하나처럼 입력.
    • git reset --hard <commit>
    • git reset --hard HEAD@{1}

git push

  • 항상 새로운 리포를 만들때 git push -set--upstream origin master를 이유도 없이 따라 쳤었는데, 이제 궁금증 해결됨
  • upstream은 해당 저장소의 가장 기본이 되는 저장소를 지정하는 것임. 따라서 forked 저장소의 경우 upstream은 원본 저장소가 된다.
  • 내가 생성한 저장소는 forked 저장소가 아니니깐 origin(당연히 내 깃헙리포지터리 주소)의 main 브랜치가 upstream이 되고, 이를 깃헙에 알려주는 것임.
  • forked repo에서는 upstream을 이렇게 확인 가능
git remote -v
origin	git@github.com:atoye1/im-sprint-query-selector.git (fetch)
origin	git@github.com:atoye1/im-sprint-query-selector.git (push)
upstream	git@github.com:codestates-beb/im-sprint-query-selector.git (fetch)
upstream	git@github.com:codestates-beb/im-sprint-query-selector.git (push

git branching and merging on local workthrough

git branch dev
git checkout dev
echo "make some chaaaaaanges!!" >> <filename>
git add && git commit

git checkout master
git merge dev
# automerged ? move on : solve confict manually
git add && git commit
git branch -D dev
# 새로운 브랜치가 특정 커밋을 가리키게 하고싶을때
git checkout -b testBranch
git reset --hard <commit id>

detached branch mode


위를 아래처럼 바꾸기 위해 detached branch mode활용

git checkout --detach birthday
#make some changes
git commit -am "detached commit"

git checkout concert
#make some changes
git commit -am "attatched commit"

Github CLI

gh cli를 통해서 웹에 방문하지 않고 간단하게 저장소를 추가, 삭제, 포크, 풀리퀘, 밥 묵고 사우나도 가고 다 할수 있음.

# git fork is not git command it's github cli command

gh repo fork https://github.com/expressjs/express
gh repo create
gh pr create
gh pr list
gh pr close
gh pr merge

pair section prep

gh repo fork <codestate repo>
git clone
git remote add pair <pair repo url>

# 드라이버(seol)가 먼저 로컬에서 커밋 & 푸시한다.
git add .
git commit -m "seol"
git push origin master

# 드라이버(park) 바꾸고
git pull pair master
# 변경사항을 만들고,
git add .
git commit -m "park"
git push origin master

# 드라이버(seol)역할 다시 바꾸고
git pull pair master
profile
I'm going from failure to failure without losing enthusiasm

0개의 댓글