Git
-
Need to specify how to reconcile divergent branches를 아라보자Git 2024. 6. 28. 21:20
기존 git pull의 문제점 : 세 가지 전략으로 나뉘게 된 배경git pull --help에서 설명하는 내용git pull --help에서는 아래처럼 설명한다.In its default mode, git pull is shorthand for git fetch followed by git merge FETCH_HEAD. 번역하자면, 디폴트모드에서는 git pull이 git fetch, 즉 git merge FETCH_HEAD의 작업에 대한 간단명령어(속기)라는 말이다.다시 말해 git pull의 내부 동작이 git merge FETCH_HEAD처럼 동작한다는 말이다. 따라서 이 디폴트모드에서는 git pull을 수행했을 때 git merge에 대한 불필요한 commit이 자동으로 생긴다. 기존 gi..
-
git 다른 브랜치 커밋 가져오기Git 2024. 6. 14. 21:37
branch를 파서 힘들게 작업했는데기획이 바뀌거나 하는 이유로 반영할 수 있는 커밋이 한두 개밖에 되지 않을 때가 있다이럴 때 원하는 커밋 한두 개만 가져와서 dev branch에 반영해보자 git에서 cherry-pick이라는 걸 사용할 수 있다 ① branch가 두 개 있다고 가정하자 feature/signupfeature/signin feature/signin branch에 있는 커밋 하나만 가져오려고 한다 ② commit 커밋 id 가져오기 git checkout feature/signingit log --abbrev-commit `````commit 89c1234`````89c7823 형태 => 커밋 ID를 가져온다 @ git의 commit id는 SHA1 알고리즘으로 만들어진 해시..
-
checkout시 손실Git 2023. 7. 26. 20:00
브랜치를 변경해야 할 일이 있는데 이때 커밋하지 않고 다른 브랜치로 넘어가게 되면 오류가 발생한다. 해당 브랜치의 내용을 커밋하기는 애매하고 삭제하기는 애매하다는게 문제이다. git은 데이터 손실을 하지 않으려고 하기 때문에 checkout시 커밋이 안된 변경 사항을 그대로 checkout하려는 branch로 가져온다. 변경사항을 버리고 싶다면? git checkout -f 이 명령으로 checkout시 변경사항을 버리고 브랜치를 변경가능하다. 임시저장 git stash는 파일의 변경 내용을 일시적으로 기록해두는 영역이다. git stash를 사용해 현재 변경했던 모든 내용을 이시적으로 저장한 후, 우선순위가 높은 작업들을 전부 처리한 뒤 git stash로 임시 저장한 내용들을 다시 불러와 작업을 이어..
-
fork가 날아가는 에러Git 2023. 2. 20. 17:51
초기 디렉토리 설정을 마치고나서, push시킨디 이 기준으로 작업을 하려고 했다. 이때 팀원분이 fork를 하시고, 이것저것 작업을 하시고 계시다가 ???: 리포지토리가 private인데 public으로 변경해주실 수 있나요?? 바로 변경시켰다. 얼마 되지 않아서 ???: 팀장님 fork가 초기화되었는데요? PR도 안올라가요! 뭐지???? 포크 원본 저장소의 상태가 바뀌면 포크한 저장소들은 모두 독립적인 저장소로 변경이 된다.!!!! 공개저장소로 변경한다음 포크연결이 해제된 상태에서 어떻게하면 포크를 연결할 수 있을까? 다시 원본 저장소를 포크해서 이슈 PR등을 옮기면 되지 않을까? 말처럼 생각처럼 쉽지 않았다. 일단 PR은 저장소 이동이 되지않는다. 이슈는 이동 되지만 링크된 PR들은 이전 저장소의 P..
-
Organization push불가Git 2023. 2. 20. 17:44
Organization에서 작업중, 팀원분의 급한연락,,, push가 안돼요ㅜㅜㅜㅜ 403에러가 뜨면서 권한 에러가 나셨다고 한다. 옛날에 작업했을때 나도 403에러가 났던적이 있었는데, 수동으로 remote url을 수정했던 기억이 있었다. git remote set-url origin "url주소" 그런데 안된다고 하신다. 깃 로그인 상태도 다시 확인해보시고 별거 다해봤다고 하셨는데 다 안된다고 하신다. 이것때문에 2일째 밤새셨다고....ㅜ 혹시 몰라서 Memer권한에서 Owner권한으로 변경시켜봤는데, 어라...? 바로 되신다고 하였다.! 따라서 쓰기도 권한같은것이 필요한가 생각하여 이것저것 뒤져보기 시작했는데... organization에서 디폴트권한은 read로 되어있다. 즉, push는 불가하..
-
git add살펴보기Git 2023. 1. 17. 17:51
git add 변경 내용을 스테이징 영역에 추가하기 위해 사용한다. 파일과 폴더를 모두 arguments로 받는다. 주로 사용자가 커밋을 하기 전까지 변경된 내용을 모아놓기 위해 사요한다. 따라서 commit을 사용하기 전에 아무리 git add를 해도 git 저장소의 변경 이력에는 어떠한 영향도 미치지 않는다. 실질적인 영향은 git commit이 된다. git status git status를 통하여 작업 디렉토리의 테이징 영역의 상태를 확인할 수 있다. 즉, 작업 디렉토리의 파일들이 Staged상태인지 Unstaged상태인지 확인가능하다. Staging Area 스테이징 영역은 작업 디렉토리와 Git저장소의 변경 이력을 연결해준다. GIt은 한번에 커밋하지 않고 자신이 원하는 파일을 선택하여 Com..
-
Pull Request 수정하기Git 2023. 1. 17. 17:19
코드를 작성하고 Pull Request를 올린 후 팀원분들께 코드 리뷰를 받고 해당 Pull Request를 수정해야 했었다. 해당 Pull Request를 close 시키고 다시 PR을 올리는것은 상당히 비 효율적이다. 다음과 같은 방법을 이용하자. Review 받은 내용 수정후 git add 하기 git commit --amend -m 를 통해 최신 commit 덮어쓰기 git push -f origin branch-name 예시 git add Add.js# 파일 추가(staging)하고 git commit --amend -m “last commit” # amend 옵션을 넣어 커밋한다. 자동으로 PR이 수정되어 수정된 PR의 내용까지 확인할 수 있다.