오늘의 나는 무엇을 잘했을까?
Git을 어느 정도 이해한 것 같다. 사실 Git 굉장히 어렵다. 심오하고 파도 파도 끝이 없을 것 같은 느낌이다. 앞으로 Git을 사용해 보며 조금 더 공부해 봐야겠지만, 이 정도로 이해한 것만으로도 만족할 학습을 했다고 생각한다.
오늘의 나는 무엇을 배웠을까?
git fetch
커맨드 사용git blame [대상 파일]
커맨드 사용git show [commit 아이디]
커맨드와 같이 코드 작성자를 볼 수 있음--force
옵션으로 가능하지만,,, 하지 말자)git revert [commit 아이디]
커맨드 사용reset
과(커밋 폐기) 달리 변경 내용을 취소하는 새 커밋을 생성git revert [commit 아이디(포함X)..commit 아이디]
: 특정 범위의 여러 커밋을 취소할 때 사용git reset
을 하면 지금까지 한 커밋들이 사라진 것일까?git reflog
: reference log - HEAD가 지금까지 가리켜 온 커밋을 모두 보여줌reflog
로 커밋 아이디 확인 후 원하는 커밋으로 다시 reset
merge
와 rebase
의 차이rebase
는 새로운 커밋을 만들지 않음rebase
를 사용하면 커밋 히스토리가 시간 순서대로 반영되어 이력관리가 용이함merge
를 선택하자merge
는 대상을 끌고 와 새로운 커밋을 만들어 합치는 것, rebase
는 분기된 이후의 커밋을 붙이는 것rebase
가 위험할 수 있음git stash
커맨드 사용git stash apply [stash 아이디]
옵션 --index
: staging area에 있던 파일이 있으면 staged 상태 복원git stash list
로 stash 아이디 확인git stash
사용해서 임시저장 한 후git stash apply
해주면 해결 가능함git stash
를 사용하면 자료들이 계속 켜켜이 쌓이고 있는 중git stash drop [지울 stash 아이디]
git stash pop [stash 아이디]
git apply
와 동시에 git stash drop
을 해준다git cherry-pick [commit 아이디]
다음과 같은 상황이 있다고 가정해 보자.
코드에 어떤 함수를 추가하고 커밋을 했다.
그 뒤에 그보다 더 효율적인 함수가 나와 수정 후 커밋을 하게 되었다.
아무리 봐도 이전 커밋은 쓸데가 없는 것 같아 없애고 싶은데 어떻게 할까?
git reset
을 활용해 보자--soft
--mixed
옵션은 워킹 디렉토리는 변경시키지 않는다reset
하고 현재 워킹 디렉토리의 코드로 다시 커밋을 해주면, 2개의 커밋이 하나의 커밋으로 만들어진 것과 같이 된다..gitignore
파일에 적혀 있는 파일들기본 구조
if (조건부분) {
동작부분;
} else {
동작부분;
}
기본 구조
if (조건부분) {
동작부분;
} else if (조건부분) {
동작부분;
} ... {
} else {
동작부분;
}
기본 구조
switch (비교할_값) {
case 조건값_1:
동작부분;
break;
case 조건값_2:
동작부분;
break;
...
default:
동작부분;
}
break
를 써 주어야 해당 케이스 동작부분 실행 후 switch 문을 빠져 나올 수 있음default
는 상위의 어떤 조건값과도 일치하지 않을 경우 실행하게 될 코드를 작성해 주는 것, 생략 가능for 문 기본 구조
for (초기화 부분; 조건부분; 추가동작 부분;) {
동작부분;
}
let i = 0
i <= 10
i++
while 문 기본 구조
while (조건부분) {
동작부분;
}
break
: 현재 실행 중인 반복문을 완전히 종료continue
: 실행 중인 반복문의 루프를 멈추고 다음 루프 실행for 문
: 추가동작 부분 실행while 문
: 조건부분 실행오늘의 나는 어떤 어려움이 있었을까?
앞서 말했다시피 Git 정말 어려웠다... 동작을 이해하는 것이 어려워 팀원들과 30분 가까이 rebase, merge에 대해 이야기 했다. 앞으로 다른 것을 공부할 때도 이러한 어려움이 있을 것이라 예상하는데 포기하지 않고 끈기 있게 알아가는 자세가 중요할 것 같다.
내일의 나는 무엇을 해야할까?