본문 바로가기

Git48

Git(29) git stash 란 요즘 git 을 중점적으로 사용하다 보니 git 에 대한 포스팅이 많다. 그만큼 지식과 대처능력도 쌓여가리라 믿는다 :) 오늘은 git stash 에 대해 중점적으로 알아보자. Git(29) git stash 란 - git stash 사용하기 git stash 는 내가 작업하던 코드만 싹 긁어서 임시 공간에 저장해준다. (클립보드 같은 느낌이랄까) 내 브랜치는 { 마스터 + 그 뒤로 작업한 코드 } 상태이다. 작업한 코드만 싹 잘라내기(git stash)하고, 임시공간에 따로 저장해놓는다. 내 브랜치는 { 마스터 } 만 남는다. 어딘가에 { 그 뒤로 작업한 코드 } 가 따로 임시 저장된다. 커밋 이 후에 작업을 했다. const ItemDetail = (): ReactElement => { return .. 2021. 9. 8.
Git(28) git reset 으로 삭제한 커밋 원래대로 되돌리기 git pull 을 받고 컨플릭트를 해결하려다 git reset --hard 으로 마지막 커밋을 삭제하였다. 자 reset 을 취소하고 삭제했던 커밋을 되돌려보자. 이렇게 취소할 수 있는 이유는 Git 에서 커밋, 체크아웃, 머지, 등의 이력을 모두 기록하기 때문이다. Git(28) reset 으로 삭제한 커밋 원래대로 되돌리기 일단 로그를 확인해야 한다. 돌아가야 할 로그를 확인하고 명령어를 통해 다시 돌아가보자. 1. ref로그 확인하기 HEAD 는 마지막 커밋의 참조로 가장 최신 커밋 을 가리키는 좌표같은 것이다. - HEAD@{0} 은 현재 상태를 가리킨다. ex) reset 해서 마지막 커밋이 삭제된 상태 - HEAD@{1} 은 마지막 명령어가 실행된 상태이다. ex) 마지막 커밋을 한 상태 -.. 2021. 9. 5.
Git(27) git rebase 로 커밋관리하기 예전에는 팀원이 적었기 때문에 작업 후에는 내 브랜치에서 → 마스터브랜치로 바로 git merge 하였다. 편하긴 하지만 커밋 이력을 보면 깔끔하지는 못했다. 요즘은 git rebase 으로 커밋이력을 관리 하고 있다. 과정이 merge 보다는 복잡하지만 커밋이력은 깔끔하다. 즉 rebase 와 merge 는 실행결과는 같지만 커밋 히스토리가 달라진다. (결과가 깔끔하냐 아니면 과정이 쉽게 가냐) 아래 사진을 보면 한눈에 차이점을 이해하기 쉬울 것이다. 자, 그럼 rebase 를 이해하러 가보자. Git(27) git rebase 로 커밋관리하기 읽으며 이해하기 내 브랜치는 { 마스터 + 그 뒤로 작업한 코드 } 이다. 작업한 코드만 싹 잘라내기(git stash)하고, 임시공간에 따로 저장해놓는다. 내.. 2021. 9. 3.
Git(26) Jira와 BitBucket 을 연동한 개발 과정 개발팀 내 모든 개발 task 는 Jira 를 이용해 업무 분배를 하고 있다. 자, 그럼 Jira 가 무엇인지 알아보고, Jira와 BitBucket 을 이용한 개발 과정을 익혀보자. ** 이 포스팅은 연동 후 사용법으로 연동 과정은 포함하고 있지 않습니다. Jira 란 Jira 는 협업 툴이다. 개발 뿐 아니라 모든 일을 효율적으로 관리 할 수 있다. ‘이슈’가 생성되고 완료될 때까지 상태 변화를 의미하며 강력한 tracking 을 할 수 있다. ‘이슈’ 해결에 대한 히스토리도 남는다. (나는 노션을 jira 와 비슷한 형식으로 사용해본 경험이 있기 때문에 조금 더 적응하기가 쉬웠던 것 같다.) Git(26) Jira와 BitBucket 을 연동한 개발 과정 JIRA 에서 , 1. Jira 에서 이슈(.. 2021. 8. 31.
Git(25) git commit --amend 커밋 수정 후 덮어쓰기 현업에서 git 은 필수이다. 특히 회사에서 협업할 때, 얼마나 아느냐가 작업시간을 좌지우지 하기도 한다. 오늘이 그런 날이었다. commit 을 하자마자 수정사항이 생겼다. 너무 마이너해서 다시 커밋하기도 민망하다면? 덮어 씌워 버리자! 오늘 소개할 녀석은 amend 라는 옵션이다. 한글 문서에는 '저장' 과 '다른이름으로 저장'이라는 기능이 있다. '저장' 기능은 그 파일 안에 새로운 내용으로 저장된다. 깃의 amend도 '저장' 기능처럼 그 커밋 위에 새로운 내용을 덮어 저장하는 기능이다. Git(25) git commit --amend 커밋 수정 후 덮어쓰기 amend 는 마지막 커밋에 + 추가할 사항이 있는 경우 (메시지든, 코드이든, 파일이든) 마지막 커밋에 덮어씌우는 옵션이다. 다음 예제를 .. 2021. 8. 30.
Git(24) Private Repository 다른 사람과 공유하기 깃헙에서는 저장소를 만들 때, private 혹은 public 로 공개여부를 설정할 수 있다. public 은 모두가 볼 수 있지만, private 은 나와 내가 공유한 사람만 볼 수 있다. 깃헙을 사용하다보면 내 Private Repository 를 다른 사람과 공유해야 하는 일이 있다. 자, 공유방법을 알아보자. Git(24) Private Repository 다른사람과 공유하기 준비물 공유할 유저의 깃헙 아이디 공유 방법 1. private repository 페이지에서 settings 로 들어간다. 2. Manage access - Invite a collaborator 를 클릭 3. 검색창이 나타나면 유저네임을 입력해준다. 4. 검색 하면 유저가 나온다. 초록버튼을 클릭해주자 5. Manage .. 2021. 8. 15.
Git(23) 원격 저장소 끊고 다른 원격 저장소에 연결하기 Updated 05/19/24 예전에 깃헙에 올려놨던 프로젝트 형식이 셋업에 필요해 내려받아 사용했다.열심히 코딩 한 후, 새로 프로젝트를 깃헙에 올리려고 하니 이미 원격저장소가 있다고 에러가 떠버렸다.예전 깃프로젝트를 다운받아 쓰니 원격저장소도 연결되어 있나보다.error: remote origin already exists.  Git(23) 원격 저장소 끊고 다른 원격 저장소에 연결하기원격 저장소를 저장/삭제/추가 등의 핸들링을 하는 명령어는 git remote 로 시작하는 명령어이다. 대체로 아래와 같은 명령어들이 사용된다원격 저장소 추가:git remote add 원격 저장소 이름 변경:git remote rename 원격 저장소 제거:git remote remove  원격 저장소와 연결 끊기.. 2021. 8. 1.
Git(22) 마지막 커밋(commit) 취소하기 지난 줄거리 신입 네 달 차, 실수로 엉뚱한 브랜치에서 커밋을 넣었다. 그래서 커밋을 취소하려고 한다. Git log 로 잘못한 커밋 내역을 확인해 보았다. (음 여기있군 ) 자, 방금 한 커밋 취소해보자 통상적으로 열심히 코드를 짜고 나면, 1. unstaged 단계에 작업한 파일들이 있다. 2. staged 단계로 얘네들을 올려버리고 3. commit 단계 에서 커밋해주면 git 에 저장이된다. commit 을 취소하고 staged 단계로 돌아감 $ git reset --soft HEAD^ commit 을 취소하고 unstaged 단계로 돌아감 $ git reset --mixed HEAD^// 기본 옵션 $ git reset HEAD^// 위와 동일 $ git reset HEAD~2// 마지막 2개의.. 2021. 6. 21.
Git(21) stash 로 삭제한 코드 복구하기 입사 한달차, 실컷 작업해놓고 commit 전에 실수로 stash 하여 작업한 코드가 다 날라가 버렸다. 당황하지 말자. 하늘이 무너져도 복구할 구멍이 있다. 1. 아래 명령어를 치고 git stash pop 2. ref # 를 복사한 뒤, 3. 아래 명령어에 가져다 붙여라 git update-ref refs/stash 레퍼런스 -m "메시지적기" git update-ref refs/stash 6fdaaaaaaaaaaaaaaaaaaaaaaaa -m "복구메시지" 그러면 ! 작업한 코드가 기적처럼 눈앞에 살아 돌아온다. ㅠㅠ staging 까지만 되어서 stash버튼 누르기 전으로 돌아왔다. commit부터 시작하면 된다. 2021. 4. 23.
반응형