SCM/Git 19

[Git & GitHub 13] Workflow - fork

Fork을 통해 다른 사람의 Repository를 자신의 GitHub 계정에 복사할 수 있습니다.(commit history와 파일 모두)이렇게 복사된 Repository를 원본 저장소의 fork라고 합니다.private repository라도, 접근 권한이 있으면 fork할 수 있습니다.1. Repository - Fork - Create a new fork2. Repository 이름 설정fork한 repository는 출처가 표기됩니다.fork된 repository에 push하면,원본이 아닌 사용자의 repository로 push됩니다.원본 프로젝트에 다이렉트로 push하지 못하더라도 pull은 가능합니다. 오픈소스 프로젝트나 팀 프로젝트에서 fork를 여러 개 두어 작업할 수 있습니다.작업을 완료..

SCM/Git 2024.05.19

[Git & GitHub 13] Workflow - 브랜치 보호규칙(branch protection rules)

1. GitHub Repository 설정 페이지 들어가서 브랜치 보호 규칙 추가하기 2. 브랜치 이름 패턴을 설정하기/feature, /release 등으로 설정하여 특정 패턴을 가진 브랜치에 규칙을 적용할 수 있습니다.Require a pull request before mergingmerge하기 전에 PR하도록 강제하기Require approvals승인 최소 인원수 설정Dismiss stale pull request approvals when new commits are pushed새 커밋이 push될 때, 과거 PR 승인을 무효화Require review from Code Owners코드 소유자도 리뷰하도록Require approval of the most recent reviewable push..

SCM/Git 2024.05.19

[Git & GitHub 12] Workflow - 기능 브랜치(feature branches), pull requests(PR)

일반적인 workflow는 main 브랜치에서 작업을 하지 않고,개별적인 브랜치를 생성하여 작업합니다. 다른 사람의 코드가 미완성일지라도 commit 했다면,코드를 확인할 수 있습니다.물론, main 브랜치는 안정적으로 구동중입니다.기능이 완성되어 안정적으로 동작하면, main 브랜치에 merge합니다.main 브랜치의 코드는 무결성을 지향합니다.특정 기능 브랜치에서 기능에 대한 개발을 완료-병합 후 브랜치를 삭제합니다.새로운 기능을 개발하기 시작하면 새로운 기능에 대한 브랜치를 생성하여 작업합니다. main 브랜치에 Merge할 때 PR을 활용하여 TEST, 코드 리뷰, 논의 과정을 거칩니다.프로젝트 구성원들이 독자적인 판단에 의해 main branch로 merge한다면,개인의 실수가 main bran..

SCM/Git 2024.05.18

[Git & GitHub 11] Workflow 필요성 - 단일(main, master)브랜치만 사용 시

협업 워크플로우는 여러 가지가 존재합니다.GitHub를 처음 협업했을때, 단일 브랜치(main)만으로 진행한다고 가정해보겠습니다.코드를 수정(commit)할 때마다pull-push-충돌-해결 과정을 거칩니다.push 전까지 타인의 코드를 확인할 수 없습니다. 단일 브랜치로 협업하기엔 많은 자원이 소모됩니다.1.프로젝트 구성원들이 각자의 local에서 작업합니다.2. KIM이 git push 로 변경사항을 main branch에 적용합니다.3. LEE가 변경사항을 적용하기 위해 git push합니다.local에서 추적한 포인터와 remote의 포인터가 달라서 오류가 발생합니다.(pull이나 fetch로 동기화를 해야합니다)4. LEE가 git pull로 원격지의 변경사항을 받고 업데이트 합니다.충돌을 해결..

SCM/Git 2024.05.18

[Git & GitHub 10] git fetch, git pull(git fetch + git merge)

git fetch, git pull 두 명령어 모두 remote의 변경사항을 local로 가져옵니다.git fetch []git fetch origingit fetch 명령어를 사용하여 원격 저장소에서 변경사항을 가져옵니다.(사용자의 작업과 통합되지 않습니다)브랜치 이름을 매개변수로 넣어 특정 브랜치만 fetch하도록 할 수 있습니다.git fetch origin branch1git fetch 명령어를 사용하여 remote branch를 local에 생성할 수 있습니다.git fetchgit pull (main)$ git pull origin maingit pull 명령어를 사용하여 원격 저장소에서 변경사항을 가져오고, HEAD 브랜치를 업데이트합니다.사용자의 워킹 디렉토리를 업데이트합니다.(사용자의..

SCM/Git 2024.05.17

[Git & GitHub 9] git push, origin, switch

git pushgit remote 명령어를 통해 원격지로 설정된 git reposiotry에,git push 명령어를 사용하여 GitHub에 코드를 올릴 수 있습니다.(git push 한 branch를 클라우드에서 호스팅합니다)git push 매개 변수를 통해 어디로 push할지 지정합니다.origin은 일반적으로 원격지를 칭합니다(push하기 전에, git remote -v 명령어를 사용하여 원격지가 가리키는 장소를 확인합니다)git remote add originhttps://github.com/Min-SungJo/VCSgit remote -vgit push origin maingit push origin masterlocal-branch와 remote-branch는 동일하지 않습니다.git pu..

SCM/Git 2024.05.16

[Git & GitHub 9] GitHub란? git clone, git remote

GitHub란GitHub란 Git Repository를 위한 호스팅 플랫폼입니다.GitHub를 사용하면 클라우드에 Git Repository를 저장할 수 있습니다.클라우드에 게시된 Git Repository에 접근해 협업합니다. GitHub에 게시된 오픈 소스 프로젝트를 보고,버그 수정 등 프로젝트 기여하거나 토론할 수도 있습니다. GitHub를 접근하려면 인터넷과 계정이 필요합니다.개인 개발자의 경우, GitHub의 무료 버전만으로도 충분합니다.git clonegit clone 명령어를 사용하여 (클라우드에 저장된 Git Repository)원격 저장소를 로컬로 가져옵니다.git clone 처럼 사용할 수 있습니다.가져온 git repository의 commit 기록에 접근할 수 있습니다. 일반적으로..

SCM/Git 2024.05.14

[Git & GitHub 8] Snapshotting(checkout, restore, reset), Patching(revert)

Snapshotting(checkout, restore, reset), Patching(revert)git 명령어를 통해 변경사항의 스냅샷 설정을 하거나 패치 적용을 할 수 있습니다.(취소, 폐기, 복구 등)1. git checkoutgit checkout [...]git checkout HEAD 명령어를 사용하여,git checkout HEAD브랜치의 HEAD로 체크아웃합니다.모든 변경사항을 버립니다.git checkout -- ...git checkout -- 또는 git checkout HEAD 명령어를 사용하여,특정 파일의 변경 사항을 최근 커밋 시점으로 되돌립니다.git checkout -- ...git checkout HEAD ...2. git restore 복원git restore 명..

SCM/Git 2024.05.10

[Git & GitHub 7] detached HEAD

HEAD는 일반적으로 특정 브랜치의 가장 최근 커밋을 가리킵니다.HEAD는 일반적으로 커밋이 아닌 특정 브랜치를 참조합니다.detached HEADgit checkout 명령어를 통해 HEAD를 특정 커밋 시점으로 이동할 수 있습니다.git checkout 이 때의 HEAD를 detached HEAD(분리된 헤드)라고 합니다.일반적으로 .git/HEAD는 branch의 경로를 가리킵니다.$ cat .git/HEADref: redfs/heads/branch1그러나 detached HEAD는 커밋을 가리키게됩니다.git checkout 3f$ cat .git/HEAD3f분리된 헤드를 브랜치로 되돌리고 싶다면,git switch 또는 git checkout 명령어를 사용하여 브랜치로 이동합니다. 분리된 헤드..

SCM/Git 2024.05.10

[Git & GitHub 6] git stash

git stash, git stash push, git stash save, git stash pop, git stash apply, git stash list, git stash drop, git stash clear0. git stash란?git stash를 사용하여 변경사항을 임시로 저장합니다.(커밋하지 않은 변경사항을 임시 저장합니다)물론 commit할 준비가 되지 않은 것도 commit할 수 있습니다.(commit이력을 잘 남기고 싶다면 git stash를 활용합니) git stash를 통해, commit하지 않고 브랜치 간 이동을 가능케 합니다. 특정 파일을 작업 중일 때 브랜치를 이동하면,두 가지 상황이 발생할 수 있습니다.1. 이동한 브랜치의 작업 공간에 그 파일의 변경사항이 입력됩니다.2..

SCM/Git 2024.05.10
728x90
반응형