팀원들과 프로젝트를 시작하기 전 준비 작업을 짧게 진행했다. 브랜치 전략과 브랜치 네이밍 컨벤션, 깃허브에서 협업할 워크플로우를 정립했는데 이런 과정을 제대로 수행해보니 원활한 협업을 위해 꼭 필요하다고 생각되었다.
원격 저장소와 로컬 저장소를 오가며 작업하다 보면 원격에서 삭제된 브랜치들이 로컬에서 보일 때가 있다. 깃은 리소스를 삭제하는 것에 대해 상당히 보수적이고 조심스러워서 브랜치를 삭제하고 나서도 해당 브랜치의 reference들이 남아있게 된다. 하지만 restore하기 전까지는 unreachable한 상태를 유지한다. 이렇게 닿을 수 없는 git object들의 reference들은 보이지 않게 해주는것이 좋다.
로컬에서 원격의 삭제된 브랜치들을 보지 않고 싶다면 git prune 명령어를 사용하면 된다. prune명령어는 unreachable한 git object들을 cleanup해주는 명령이다. 원격 저장소와 연동하여 삭제된 브랜치들은 로컬에서도 안보이게 하려면 다음과 같이 prune을 사용하면 된다.
git remote prune origin
또한 prune을 실제로 실행하지 않고 실행한다면 어떤 결과가 나올지만 보고 싶다면 아래처럼 dry-run옵션을 넣어주면 된다.
git remote prune --dry-run origin
만약 삭제된 브랜치가 쌓이기 전에 prune을 하고 싶다면, git fetch시 -p옵션을 넣어 원격과 동기화할 때마다 prune을 실행할 수도 있다.
git fetch -p
태그는 커밋에 라벨을 붙이는 것과 같다. 태깅 행위는 커밋과 다르며, 특정 시점에 태그를 붙이면 해당 시점 기준 가장 최근 커밋에 태그를 붙이게 된다.
예를 들면, initial commit 이후 readme를 업데이트하는 중, 업데이트에 대한 커밋을 하지 않은채로 git tag …
를 하면, 해당 태그는 initial commit에 달리게 된다.
tag를 붙이고 싶다면 항상 커밋 직후에 하는 습관을 들이도록 하자.
또한 이전 커밋에 태그를 붙일 수도 있다.
git tag -a v1.2 9fceb02
이런식으로 커밋아이디를 함께 주면 된다. 참고로 -a
옵션은 annotation 방식으로 태깅하겠다는 옵션이며, 태그 저자와 생성한 사람이 기록된다. -a
옵션을 주지 않으면 lightweight 태그가 생성된다. lightweight 태그는 커밋의 체크섬값만 저장하고 다른 정보는 저장하지 않는다.
로컬에서 만든 태그는 원격 저장소로 따로 push를 해줘야 원격에서도 사용할 수 있게 된다.
git push origin <태그 이름>
명령을 통해 원격에 push할 수 있다.
<ul>
<li /> --1
<li /> --2
</ul>
|
| // 아래로 변경 되었을 때 (3번 아이템을 맨 아래에 추가)
|
▽
<ul>
<li /> --1
<li /> --2
<li /> --3
</ul>
이전 1번위치와 현재 1번위치 비교 → 같아서 다시 안그림 <ul>
<li /> --1
<li /> --2
</ul>
|
| // 아래로 변경 되었을 때 (3번 아이템을 맨 아래에 추가)
|
▽
<ul>
<li /> --1
<li /> --3
<li /> --2
</ul>
이전 1번 위치와 현재 1번 위치 비교 → 같아서 다시 안그림use
로 시작해야한다.2차 평가를 위해 복습을 진행하던 중 내가 알게 모르게 애매모호하게 이해하고 있는 개념들이 정말 많은것 같았다. 예를 들면 리액트 훅 같은 경우 함수형 컴포넌트가 상태관리나 사이드 이펙트를 발생시키기 위해 사용하는 외부 함수 정도로 알고 있었는데, 왜 그것을 외부 함수를 이용해야 할 수 있는 것인가에 대한 의문이 남았고, 이걸 이제서야 찾아보고 조금이나마 이해했다. 앞으로는 처음 배울 때 정확히 이해하고 넘어가야겠다.
양입니다.