깃: 25개의 글
오늘 다루어볼 내용은 git의 cherry-pick(체리픽)이다. 보통 체리픽을 사용하는 이유는 다른 브랜치의 커밋의 일부만 가져올때 많이 사용한다. 간단하게 예제를 다루어보자. > gb * [1] feature/add-function [2] feature/update-function 위처럼 두개의 브랜치가 존재하고 각 브랜치의 커밋로그는 아래와 같다. > feature/add-function * 13e321a - (HEAD -> feature/add-function) add c.txt (9 minutes ago) * f894b25 - add b.txt (9 minutes ago) * 35402a1 - add a.txt (9 minutes ago) > feature/update-function * cb6..
오늘 다루어볼 내용은 평소에 조금 헷갈렸던 Git reset과 revert이다. 깃에서 되돌리기 위한 방법은 크게 2가지가 있다. 바로 reset과 revert이다. 그렇다면 둘의 차이점은 무엇일까? reset : 시계를 마치 과거로 돌리는 듯한 행위 revert : 특정 사건을 없었던 일로 만드는 행위 git reset "돌아가고 싶은 커밋 hash" 먼저 reset을 알아보자. reset은 특정 커밋으로 돌아가는 행위다. 그말은 특정 커밋 이후의 커밋이력 모두 없어지게 되는 것이다.(물론 옵션마다 상태가 다르긴하다) reset에는 옵션이 3가지가 있다. hard, soft, mixed 각 옵션에 대한 설명은 아래와 같다. hard : 돌아가려는 커밋 이후의 모든 내용을 다 지워버린다. soft : 돌..
Git에서 한 브랜치에서 다른 브랜치로 합치는 방법은 두 가지다. 하나는 이전 포스팅에서 다룬 Merge이고 다른 하나는 Rebase이다. Rebase 상황을 이전 포스팅에서 다루어봤던 merge 상황이랑 비교해보자. Git - fast-forward merge 란? fast-forward & 3-way Merge의 차이점 아래와 같은 상황이 있다. 이 상황에서 3-way-merge를 하면 그래프상태는 아래와 같은 상태가 된다. #current branch master > git merge issue-1 그런데 Rebase를 하면 어떻게 될까? #current branch issue-1 > git rebase master > git checkout master > git merge issue-1 실제로 ..
1. fast-forward merge 아래와 같은 상황이 있다고 가정하자. issue 처리를 위해 master 브랜치에서 브랜치를 따서 작업을 하고 있었다. 갑자기 픽스해서 빠르게 릴리즈해야할 버그 사항이 있어 hotfix 브랜치를 master 기준으로 따서 작업을 했다. 버그를 픽스하고 테스트를 통과해 이제 릴리스 해야하는 상황이다. 이제 master에 hotfix를 머지해야되는 상황이다. 그런데 hotfix는 master를 베이스로 하고 있는 브랜치, 즉 master의 upstream 브랜치이다. 이제 머지를 하면 fast-forward 머지가 되는 것인데, 이것은 단순히 master가 바라보고 있는 커밋을 앞으로 이동하는 것(hotfix 브랜치가 가르키는 커밋을 master가 바라본다.) 뿐이다...
이번 포스팅은 굉장히 짧은 포스팅이 될것이다. 포스팅 내용은 ".gitignore" 파일이 먹지않을 때, 해결 방법이다. 분명 .gitignore에 파일 확장자 등을 추가하였는데 계속해서 changes에 나온다면 git의 캐시가 문제가 되는지 확인 해볼 필요가 있다. 아래 명령을 통해 캐시를 삭제해보자. > git rm -r --cached > git add . > git commit -m "clean untracked files" 아마 캐시 되었었던 파일들이 쫙 deleted된걸로 나오고 일부 파일들은 untracked로 나올 것이다. 최종적으로 한번 커밋해주자 ! 출처: https://coding-start.tistory.com/330?category=786242 [코딩스타트]
아래 명령어는 특정 브랜치만 clone하는 방법이다. git clone -b {branch_name} --single-branch {git_repository_host}
현상 github에서 저장소 생성 후 저장소 주소를 remote에 입력(git remote add origin https://github…..)했고, 로컬에서도 정상적으로 초기화(git init)했는데도 git pull 또는 git merge 명령이 동작하지 않고 git push origin master시 [rejected] master -> master (non-fast-forward)이런 에러가 발생하는 경우 원인 깃허브에 생성된 원격 저장소와 로컬에 생성된 저장소 간 공통분모가 없는 상태에서 병합하려는 시도로 인해 발생. 기본적으로 관련 없는 두 저장소를 병합하는 것은 안되도록 설정되어 있음. 해결방법 아래와 같이 git pull 시에 –allow-unrelated-histories 옵션 추가하여 ..
remote: Permission to 403 remote: Permission to ~ denied to id(xxx). fatal: unable to access 'https://github.com/~': The requested URL returned error: 403 a라는 github 아이디로 '최초' 글로벌 유저를 등록 후 b라는 github 아이디로 글로벌유저를 등록 후 git push를 하게 되면 기존에 최초 등록한 a아이디를 바라보고 있기에 에러를 발생시키는 것이었습니다. spolight 검색을 통해 keychain Access.app 또는 키체인 접근을 실행합니다. 오른쪽 상단에 검색창에 github.com 을 검색합니다. 리스트에 보이는 github.com 더블클릭 후 계정과 암호를..
GitHub - github를 maven repository로 사용하기 (깃허브를 메이븐 레포지토리로 사용하기) 이번 포스팅은 GitHub를 maven repository로 이용하는 방법입니다. 혹시 Git에 대한 기본 지식이 조금 부족하시다고 생각이 드시면 아래 링크에서 한번 읽고 오시면 좋을 것같습니다. GitHub - 간단한 Git사용법(명령어,로컬 레포지토리,원격 레포지토리) GitHub - Git 사용법 2 (명령어,branch, checkout, reset 등) Github - eclipse(이클립스)와 local repository(로컬레포지토리) 연동. 기본적인 플로우는 아래와 같습니다. Project ------------------->Local Repository-------------..
Github - eclipse(이클립스)와 local repository(로컬레포지토리) 연동 이번 포스팅은 간단하게 이클립스와 로컬 레포지토리 연동입니다. 간단하게 flow를 설명하면, Remote Repository(Github) Local Repository Eclipse(이클립스) 입니다. 혹시나 git에 대한 사전 지식이 없으시다면 이전 포스팅 글을 한번 읽고 와주세요!. GitHub - 간단한 Git사용법(명령어,로컬 레포지토리,원격 레포지토리) GitHub - Git 사용법 2 (명령어,branch, checkout, reset 등) 첫번째 작업은 원격 레포지토리 생성과 로컬 레포지토리 생성 및 연결입니다. 해당 설명은 위의 포스팅에서 참조하시길 바랍니다. 이클립스 & Git(로컬 레포지토리..