스택큐힙리스트

git branch, fork, fetch, merge, rebase, clone 사이의 차이점은 무엇인가요? 본문

카테고리 없음

git branch, fork, fetch, merge, rebase, clone 사이의 차이점은 무엇인가요?

스택큐힙리스트 2023. 11. 22. 09:11
반응형

Git에서 브랜치, 포크 및 클론의 차이를 이해하고 싶습니다.


마찬가지로, git fetchgit pull의 차이는 무엇을 의미합니까?


또한, rebasemerge와 비교하여 무엇을 의미합니까?


개별 커밋을 어떻게 스쿼시할 수 있을까요?


그들은 어떻게 사용되며, 왜 사용되며, 무엇을 나타내나요?


GitHub는 어떤 역할을 하는 건가요?

답변 1

기본 개념을 학습하는 데에 https://learngitbranching.js.org/이 유용할 수 있습니다. 스크린샷: 이미지

동영상: https://youtu.be/23JqqcLPss0


마지막으로, 7가지 생명의 구원자!


  1. 변경 사항을 만들고 커밋합니다. (하지만 푸시하지 말고) 그리고 이제야! 어머나, 당신이 마스터 브랜치에 있다는 것을 깨달았습니다!



    git reset [파일명]
    git checkout -b [새로운_브랜치_이름]
    git add [파일들]
    git commit -m 유용한 메시지
    보세요! 'master' 커밋을 자체 브랜치로 옮겼습니다!


  2. 로컬 브랜치에서 작업하다가 몇 가지 파일을 망치고, 그냥 git pull을 마지막으로 한 것으로 돌아가고 싶은 경우:



    git reset --hard origin/master # 이것을 하는 데 익숙해져야 합니다!


  3. 로컬에서 변경 사항을 시작합니다. 여러 개의 파일을 편집하고, 그런데 젠장, 여전히 마스터(또는 다른) 브랜치에 있습니다:



    git checkout -b 새로운_브랜치_이름 # 새로운 브랜치를 생성합니다
    git add . # 변경된 파일을 추가합니다
    git commit -m 메시지를 작성하세요 # 커밋합니다


  4. 현재 브랜치에서 특정 파일을 망치고, 기본적으로 그 파일을 최근에 리모트 리포지토리에서 풀린 상태로 '리셋'하고 싶은 경우:



    git checkout 당신/디렉토리/파일명

    실제로 이 명령은 파일을 재설정합니다 (다른 Git 명령어와 마찬가지로 여기서 하는 일의 이름이 잘 지어져 있지는 않습니다).



  5. 로컬에서 변경 사항을 몇 가지 만들고, git reset이나 rebase를 할 때 그 변경 사항을 잃지 않도록 하려면: 중요한 변경 사항을 잃거나 Git에서 실수할 가능성이 있는 경우 전체 프로젝트를 수동으로 복사합니다 (cp -r ../my_project ~/).



  6. 리베이스 중에 문제가 발생하는 경우:



    git rebase --abort # 상호 작용하는 리베이스를 포기하고 병합 문제를 해결합니다


  7. Git 브랜치를 PS1 프롬프트에 추가합니다 (참조: https://unix.stackexchange.com/a/127800/10043), 예를 들면


    프롬프트


    브랜치는 selenium_rspec_conversion입니다.



답변 2

참조(Git - Branch, Fork, Fetch, Merge, Rebase, Clone)간에는 몇 가지 차이점이 있습니다. 이 에세이에서는이 각 항목에 대해 설명하고 있습니다. 현재에 대한 이해도를 향상시킬 수있는 추가 정보를 제공 할 것입니다.
우선, Git 브랜치는 다른 Git 리포지토리 사본에서 독립적으로 개발하는 데 사용됩니다. 브랜치는 특정 작업 영역에서의 개발을 포함하는 일련의 커밋을 나타냅니다. 팀에서 동시에 다양한 작업을 수행하고 각 작업에 대한 이력을 독립적으로 관리 할 수 있도록 브랜치를 사용합니다.
다음으로, 포크는 GitHub와 같은 리모트 저장소에서 사용할 수있는 기능입니다. 포크는 기존 저장소의 완전한 사본을 생성합니다. 이러한 완전한 사본은 독립적으로 관리 될 수 있으며 기존 저장소와는 별개의 히스토리를 가질 수 있습니다. GitHub 및 GitLab과 같은 호스팅 플랫폼은 제공하는 공용 저장소를 포크하여 개별 작업을 진행하는 데 사용되는 주요 방법 중 하나입니다.
그런 다음 페치는 리모트 저장소의 최신 커밋을 가져오는 데 사용됩니다. 페치 명령은 작업 영역의 변경사항에 영향을주지 않으면서 로컬 저장소에 리모트 저장소의 변경사항을 업데이트합니다. 이렇게하면 작업 중인 코드와 리모트 저장소의 코드를 유지하면서 최신 변경 사항을 확인할 수 있습니다.
병합은 두 개 이상의 브랜치를 한 개의 브랜치로 결합하는 데 사용됩니다. 이는 팀이 개발 한 독립적 인 기능 또는 수정 사항을 하나로 통합할 때 유용합니다. 머지는 프로그램의 성능을 향상시키고 모든 개발자가 최신 버전에서 작업 할 수있도록하는 데 도움이됩니다.
리베이스는 한 브랜치에 다른 브랜치의 변경 사항을 적용하는 데 사용됩니다. 이 경우 예전 커밋들을 재 적용하여 변경 사항을 현재 브랜치의 최신 상태로 이동시킵니다. 리베이스는 팀의 작업 또는 기능의 현재 버전과 다른 브랜치에서의 변경 사항을 조합하는 데 사용됩니다. 이것은 충돌을 피하고 변경 사항을 정리 할 수있는 좋은 방법입니다.
마지막으로, 클론은 리모트 저장소를 로컬 컴퓨터로 완전히 복제하는 데 사용됩니다. 클론을 사용하면 모든 히스토리, 브랜치 및 파일을 관리하고 변경 사항을 추적 할 수 있습니다. 이는 다른 사람이 공유하는 리모트 저장소에서 작업을 시작하는 데 효과적입니다.
요약하면, Git 브랜치는 개발을 독립적으로 수행하는 데 사용되고, 포크는 분리 된 저장소를 생성하는 데 사용됩니다. 페치는 리모트 저장소의 변경 사항을 가져 오고, 머지는 브랜치의 변경 사항을 결합하고, 리베이스는 다른 브랜치의 변경 사항을 현재 브랜치에 적용하며, 클론은 리모트 저장소를 로컬로 복제하는 데 사용됩니다. 이러한 각 동작은 Git에서 팀의 협업 및 개발 프로세스를 향상시키기 위해 특정 목적으로 사용됩니다.

반응형
Comments