본문 바로가기

Tools/Git36

[Git] GitHub 저장소 옮기기 (Repository Transfer) - 프로젝트 소유권 넘기기 깃허브를 협업 도구를 사용하는 경우 계정 밑에 저장소(Repository)를 만들어서 코드 관리를 하게 된다. 저장소는 계정에 속하게 되는데, 다른 계정으로 저장소를 넘겨야하는 경우가 생긴다. 개인 계정에서 진행하던 프로젝트의 규모가 커져서 조직 단위의 정식 프로젝트로 옮기는 경우, 퇴사나 전배 등으로 개인 계정에 있던 프로젝트를 다른 계정으로 넘기는 경우가 이에 해당한다. 소유권을 넘기고 싶은 저장소의 "Settings" 항목으로 들어간다. 'Options' 탭 페이지 하단으로 쭉 내려보면 빨간색의 위험해보이는 메뉴들이 나온다. Danger Zone에 있는 메뉴중 'Transfer ownership'이라는 항목을 확인할 수 있다. 'Transfer' 버튼을 눌러 소유권 이전을 진행하면 된다. 단순히 소.. 2021. 2. 12.
[Git] git의 어원, 의미 소스코드의 형상관리 도구로 git을 사용하는 조직이 정말 많다. 비슷한 역할을 하는 SVN과 CVS는 각각 SubVersioN과 Concurrent Versions System의 약자인데 대문자로 표기하지 않는 'git'이라는 단어는 어디에서 유래되었는지 궁금해졌다. git이라는 단어의 의미, 어원에 대해 git wiki 페이지에서 힌트를 얻을 수 있었다. (링크 : git.wiki.kernel.org/index.php/GitFaq#General_Questions) git 프로젝트는 리눅스를 만든 리누스 토발즈에 의해 진행되었다. 리누스 토발즈는 진행하는 프로젝트의 이름을 붙일 때 자신과 관련된 것으로 짓는다고 한다. 리눅스(Linux)라는 운영체제의 이름도 리누스와 유닉스를 적절히 섞은 것이다. git.. 2021. 2. 11.
[Git] GitHub Draft Pull Request 기능 깃허브(Github)를 협업 도구로 사용하는 경우 'PR(Pull Request)'을 통해 컨트리뷰션을 하게 된다. 브랜치를 생성하고 새로운 기능이나 버그 수정을 위한 코드를 작성한 다음 수정사항을 반영해달라는 PR(Pull Request)를 요청하게 된다. 리뷰어는 수정 사항을 리뷰하고 승인을 하면, 수정사항이 반영된다. 깃허브에서는 PR 이슈를 초안(Draft) 모드로 오픈할 수 있는 기능을 제공하고 있다. 작업중인 코드가 아직 리뷰를 받을 준비가 되어 있지 않으며, 계속 작업이 이뤄지고 있는 상태라는 것을 의미한다. PR 생성을 할 때 "Create pull request" 버튼 옆에 드랍 다운 화살표를 클릭하면 "Create draft pull request" 항목이 나온다. 이 항목을 선택하면 .. 2021. 1. 10.
[Git] GitHub 다크모드 설정 깃헙이 드디어 다크모드를 정식지원하게 되었습니다. 그 동안 'GitHub Dark Theme' 등의 크롬 확장 프로그램을 이용해서 깃헙을 다크모드로 이용하고 있었습니다. 이제는 깃헙에서 정식으로 지원하는 다크모드를 사용할 수 있게 되었습니다. 깃헙 페이지에 접속한 다음 설정 페이지로 갑니다. 설정 페이지는 깃헙 페이지 우측 상단에 있는 프로필 버튼을 누른 후 "settings" 메뉴를 선택하거나 github.com/settings/profile 링크로 들어가면 됩니다. "Settings" 페이지에서 "Appearance" 메뉴를 선택하면 Theme 항목을 볼 수 있습니다. Light는 기존의 흰색 배경화면 모드를 의미합니다. Dark는 이번에 새로 추가된 다크모드를 의미합니다. Default to sys.. 2020. 12. 14.
[Git] 커밋 로그 메시지 수정하기 git을 이용해 코드관리를 하다보면 커밋 메시지에 오타가 생기거나 설명을 잘 못 추가하는 경우가 간혹있다. 커밋 로그를 잘 적어놔야 코드의 유지보수가 편한데, 커밋 로그를 잘못 작성했다면 수정을 해야한다. commit --amend 마지막 커밋을 수정하려면 git commit --amend를 이용하면 된다. $ git commit --amend -m "New Commit message" $ git push -f 커밋 메시지가 변경되어 Commit Hash 값이 바뀌었으므로 원격 저장소에 -f 옵션을 이용해서 강제로 푸쉬를 해줘야 수정이 된다. rebase -i 개발 브랜치를 따서 작업을 한 다음 머지(Merge)를 했는데 잘못된 커밋 로그를 발견한 경우도 있다. 마지막 커밋에 대한 수정이 아닌 커밋로그 .. 2020. 11. 27.
[Git] 커밋 작성자(author) 정보 수정하기 git commit을 이용해 코드에 대한 수정을 깃허브에 반영할 때 잘 못된 작성자 정보가 반영되는 경우가 있다. 깃허브 계정 여러개를 같이 사용하는 경우나 개발 서버 하나를 여러명이 사용할 때 원하지 않는 계정 정보로 커밋이 남는 경우가 있다. 원하는 계정이 아닌 잘못된 계정으로 커밋 로그가 남게되어 컨트리뷰션에 남지 않거나 잘 못된 사람에게 문의가 갈 경우가 생긴다. 이 경우 git의 rebase 명령을 이용해서 커밋 작성자 정보를 수정할 수 있다. 우선 커밋 계정을 수정할 커밋의 바로 직전 커밋의 해시값을 확인하자. 해시 값을 보자. 이 케이스에서는 bec8b77다. rebase 명령을 실행하자. git rebase -i -p bec8b77 bec8b77 커밋 이후 작성된 모든 커밋들에 대해서 re.. 2020. 11. 16.
[Git] GitHub 브랜치 이름 변경하기 (Rename branch) 개발 브랜치를 따서 작업을 진행하다가 작업중인 브랜치의 이름을 변경하고 싶은 경우가 종종있다. 깃허브에 생성해놓은 브랜치의 이름은 git 명령을 이용해서 변경하거나 깃허브 웹 페이지에서 변경할 수 있다. 일단 깃허브에 생성되어 있는 oldname이라는 브랜치의 이름을 newname으로 바꿔보자. git 명령을 이용한 브랜치 이름 변경 우선 로컬 환경에서 브랜치의 이름을 변경해야한다. 다음 git 명령을 이용해서 브랜치 이름을 변경할 수 있다. git branch -m oldname newname mv 이전이름 새로운이름 을 이용해서 리눅스 파일의 이름을 변경하는 것처럼 -m 옵션으로 브랜치의 이름을 변경한다. 원격 저장소에 반영 로컬 저장소에서 브랜치의 이름을 변경했다. 하지만 깃허브에 저장되어 있는 브.. 2020. 11. 14.
[Git] push.default - 'simple' or 'matching' git을 이용해 리모트 저장소로 소스코드를 push 할 때 다음과 같은 경고가 뜨는 상황이 있다. $ git push warning: push.default is unset; its implicit value has changed in Git 2.0 from 'matching' to 'simple'. To squelch this message and maintain the traditional behavior, use: git config --global push.default matching To squelch this message and adopt the new behavior now, use: git config --global push.default simple When push.default .. 2020. 11. 4.
[Git] GitHub 코드조각(Snippet) 링크 이용하기 - permalink 깃헙(github)을 이용해 커뮤니케이션을 하다보면 특정 코드조각(Code Snippet)을 댓글로 붙여 넣으면서 설명해야 할 경우가 많이 있다. 깃헙에서는 코드 조각을 댓글이나 이슈에 붙여 넣을 수 있는 기능을 제공한다. (단, 코드가 속해있는 레파지토리에만 적용되며 외부의 다른 깃헙 레파지토리로 가져갔을 때에는 작동하지 않는다) 이와 같은 소스코드가 있을 때, partition() 함수를 이슈에서 언급하고 싶다면 코드의 특정부분에 대한 permanent link를 만들어 줘야한다. 깃헙 소스뷰어의 숫자 부분을 클릭하면 그 라인이 노란색으로 하이라이트되면서 "..." 버튼이 나타난다. 이게 참조하고자하는 코드조각의 시작점이다. 이제 시프트(Shift) 버튼을 누르고 참조할 코드 조각의 마지막 라인의 숫.. 2020. 9. 29.