Git
-
mac 터미널에서 github 계정 정보 삭제Git 2022. 11. 12. 00:39
한 컴퓨터에서 두 github계정을 쓴다거나 발생한 personal access token 만료/삭제 시에 인증 처리가 제대로 안 될 수 있다. 예를 들면 git clone은 잘 되었지만 push 하려고 하면 에러가 난다거나 하는 식으로. 이때는 mac에 등록되어 있는 키체인 정보를 제거해야 한다. 두 가지 정도 방법이 있는데 각각 살펴보자. 1. 키체인 접근 메뉴에서 제거 친절하게 GUI로 제거할 수 있다. 기본 키체인 -> 로그인 클릭 검색 창에서 github 검색 목록에 있는 github.com 오른쪽 클릭 'github.com' 삭제 클릭 그러면 아래처럼 확인창이 뜨고 삭제를 누르면 지워진다. 2. cli상에서 제거 나는 저 위의 쉬운 방법을 모르고 구글링 끝에 이 방법으로 제거했었다. 아래와 같..
-
Personal access tokens (classic) 생성 및 사용Git 2022. 11. 12. 00:03
github에서 새로운 repository를 생성하면 친절하게 아래와 같이 도움말이 나온다. ...or create a new repository on the command line 부분의 내용을 그대로 복붙 하면 push까지 잘 되어야 할 것 같은데 로그인을 요구한다. 그래서 github 계정의 id/pw를 입력하면 돼야 할 것 같은데 안된다. Support for password authentication was removed on August 13, 2021. 안되는 이유가 같이 나오는데 2021년 8월 13일부터 계정 비밀번호로 직접 인증하는 기능을 제거했다고 한다. 계정 비밀번호는 모든 기능을 갖고 있다 보니 보안 강화 차원에서 조치를 취한 듯하다. 그래서 참고하라고 나온 사이트에 가보면 크게 ..
-
git config: push.autoSetupRemoteGit 2022. 9. 16. 23:42
로컬에서 브랜치를 생성하고 최초 push를 할 때면 항상 아래와 같은 메시지가 나온다. 이 메시지가 나오면 git push ~ 부분을 세 번 클릭해서 복사하고 붙여 넣은 뒤 엔터를 쳐서 upstream에 브랜치가 올라가게 하는 게 일상이었다. (기계적인 루틴이었다. 또한 내 git 강의에서도 저걸 복붙해서 넣으라고 말하기도 했었다. ) 응? 그런데 이상하다. git push ~ 명령어 아래로 처음 보는 문구들이 보인다. 대충 해석해보자면 push.autoSetupRemote 라는 옵션을 주면 upstream에 브랜치가 없어도 push가 된다는 뜻 같다. 검색해보니 git 2.37 버전에서 추가된 기능이라고 한다.(링크) git -v 명령어로 내 git version을 확인해서 추가해보자. git -v 버..
-
여러 branch 한번에 여러개 지우기Git 2021. 3. 10. 23:12
내 개발 피쳐들 작업하고 남의 브랜치 받아서 코드리뷰를 하다보면 로컬에 수 많은 브랜치들이 쌓이게 된다. 피쳐 브랜치들은 수명이 짧기 때문에 몇 일 몇 주만 지나도 많이 쌓인다. 브랜치가 많으면 보기 좋지 않으니 한 번에 여러개씩 지워보자. 한 줄 요약 git br | grep {{브랜치에 포함되는 문자열}} | xargs br -D 유닉스 계열 명령어인 xargs를 활용한다. xargs는 앞 명령의 결과를 인자로 받을 수 있다. 두 단계로 나눈다고 생각해보면 git br | grep feature의 결과를 git br -D {{여기}}에 넣어준다. 참고: https://medium.com/@rajsek/deleting-multiple-branches-in-git-e07be9f5073c
-
[Git 입문편] 10. cherry-pick, tagGit 2021. 3. 8. 23:36
본 포스팅은 저의 인터넷 강의인 실무자가 알려주는 Git - 입문편의 강의안을 바탕으로 작성하였습니다. cherry-pick 다른 커밋을 가져옴 커밋의 수가 적다면 merge나 rebase보다 간결하고 깔끔한 트리를 유지할 수 있음 git co master git co -b feature/f vi README.md git ci -am 'Cherry-pick test' git co master git cherry-pick {{hash}} tag 릴리즈를 하기 위한 브랜치 같은 것 GitHub에서 Release를 만들면서 하면 편함 -- 이때까지 작업한 것을 push git push GitHub 실습 releases 클릭 create a new release 태그 이름: v1.0.0 기준 브랜치: maste..
-
[Git 입문편] 9. resetGit 2021. 3. 8. 23:33
본 포스팅은 저의 인터넷 강의인 실무자가 알려주는 Git - 입문편의 강의안을 바탕으로 작성하였습니다. reset 상태를 이전 커밋으로 reset 시킴 옵션에 따라서 몇 커밋 이전 / 어느 단계(Staged, Modified, Unmodified)까지 reset 할지를 결정 show: 커밋 정보를 보여줌 HEAD == @, ~ == ^ ex) HEAD~, HEAD^, @~, @^ : 한 커밋 이전 @~2: 2커밋 이전 옵션 --soft commit 명령만 되돌림 (Staged 상태가 됨) HEAD만 해당 커밋으로 돌림 vi README.md git ci -am 'Commit for reset exer' git reset --soft @^ git st --- On branch develop Changes ..
-
[Git 입문편] 8. rebaseGit 2021. 3. 8. 23:23
본 포스팅은 저의 인터넷 강의인 실무자가 알려주는 Git - 입문편의 강의안을 바탕으로 작성하였습니다. rebase 1. 다른 브랜치와 병합 (3.6 Git 브랜치 - Rebase 하기) 기능은 merge와 같음 (코드를 합침) 내 브랜치의 커밋을 대상 브랜치의 위(다음)으로 생성함 깔끔한 로그를 유지할 수 있음 실습 상황: master의 변경들을 feature/c에서 rebase 해본다 대상 브랜치의 커밋만 진행 (fast-forward) 두 브랜치 모두 커밋이 있지만 충돌이 나지 않음 (auto merging) 두 브랜치 모두 커밋이 있고 충돌이 남 (conflict) 2. 커밋 여러개 수정하기 주의 push해서 누군가 사용하고 있는 커밋을 rebase 하면 안됨 (헬게이트가 열림) 해당 커밋을 기반..
-
[Git 입문편] 7. stash, mergeGit 2021. 3. 8. 23:17
본 포스팅은 저의 인터넷 강의인 실무자가 알려주는 Git - 입문편의 강의안을 바탕으로 작성하였습니다. stash 작업 하던 내용을 임시 저장 브랜치에서 작업하다가 다른 브랜치로 변경해야 하는데 커밋은 하고 싶지 않은 경우 stack처럼 작동 (First In, Last Out) stash, pop을 많이 사용 실습 vi README.md git stash git st git stash list git stash pop git st apply, drop 등의 옵션이 있음 merge 협업의 핵심. 다른 브랜치와 현재 브랜치를 합쳐서 코드를 합침 방식 fast-forward 커밋들이 공통이고 대상 브랜치의 커밋만 증가 했을 경우 단순히 HEAD만 옮겨짐 3-way Merge 두 갈래로 나온 변경들을 합쳐서 ..