Git와 협력

6769 단어 gittutorialbeginners
Git는 무료 소스 오픈 버전 제어 시스템입니다.많은 개발자들이 그것을 사용하여 그들의 업무를 가볍게 가속화하고 조율하며, 이를 실현하는 많은 방법을 제공했다.사람들이 Git를 사용하는 방식과 방법은 각각 다르다.이 글은 프로젝트에서 Git를 사용하거나 OSS에 기여하고 싶다면 간단하고 효과적인 방법을 보여 드리겠습니다.

가름 항목


첫 번째 단계는 당신이 처리하고 싶은 항목의 지점 (던전) 을 만드는 것입니다.이렇게 하면 홈 저장소에서 오류가 발생하지 않도록 자신의 복사본을 처리할 수 있습니다.처리할 항목의 Github 페이지로 이동하여 오른쪽 상단에 있는 Fork 버튼을 클릭합니다.

주 프로젝트의 지점을 성공적으로 만들었습니다.포크 위치:https://github.com/<your_github_username>/<your_project_name>

클론 저장소


포인터 항목을 만든 후 다음 단계는 포인터를 로컬 기계에 복제하는 것입니다.터미널 유형:git clone <url_of_your_cloned_repo>.git클론에 대한 재구매 계약의 URL은 다음과 같습니다.https://github.com/<your_github_username>/<your_project_name>로컬 컴퓨터로 항목을 복제한 후 프로젝트 폴더에 액세스할 수 있습니다.cd <your_project_name>현재 지점을 확인합니다.git branch기본적으로, 당신은 주 지점에 위치할 것입니다. 주 지점은 프로젝트의 주 지점입니다.주 지점을 영원히 변경할 수 없습니다. 주 저장소의 최신 버전을 사용해서 현재 항목을 업데이트해야 합니다. (잠시 후에 자세히 설명합니다.)

일을 시작하다


지금 이 프로젝트를 시작하고 싶다면 어떻게 해야 합니까?
첫 번째는 주 지점에서 새로운 지점을 만드는 것이다.이렇게 하면 새로운 작업을 프로젝트의 현재(주) 버전과 논리적으로 분리하여 나중에 주 지점과 합병할 수 있는 문제를 피할 수 있습니다.
다음과 같이 새 브랜치를 생성합니다.git checkout -b <name_of_your_working_branch>이렇게 하면 현재(이 경우 위주) 브랜치에서 새 브랜치가 생성됩니다.현재 그것은 기본적으로 너의 주요 지점의 사본이다.

원격 저장소 추가


새로운 지점에서 일하기 시작하면 누군가가 홈 저장소를 업데이트한다고 상상해 보세요.이로 인해 다음과 같은 문제가 발생할 수 있습니다.
  • 다른 사람들은 당신이 하고 싶은 일을 완성했거나 변경할 파일을 변경했습니다.충돌을 초래할 수 있습니다. 충돌을 해결할 수 있지만, 충돌을 해결할 때 오류가 발생하면 전체 응용 프로그램을 파괴할 수 있기 때문입니다.
  • 다른 사람들은gem버전을 업데이트했고 응용 프로그램의 새 버전까지 업데이트하여 변경 사항을 유행에 뒤떨어지게 했습니다.
  • 저장소를 주기적으로 업데이트하지 않으면 다음 두 가지 문제가 발생할 수 있습니다.첫 번째로 해야 할 일은 원격 저장소를 추가하는 것입니다.git remote add <name_of_remote> <url_of_the_main_repository>.git원격 장치 이름은 원격 장치로 추가되지 않은 이름일 수 있습니다.항목을 복제하면 기본적으로 분기 저장소가 소스로 추가되므로 다음을 통해 확인할 수 있습니다.git remote -v결과는 다음과 같아야 한다.
      origin    https://github.com/<your_github_username>/<your_project_name> (fetch)
      origin    https://github.com/<your_github_username>/<your_project_name> (push)
    
    일반적으로 사용되는 홈 저장소의 이름은 업스트림입니다.따라서 위의 git remote add 명령 (원격 이름은 upstream) 을 입력한 후, 이전처럼 원격 장치를 검사하면 새로운 결과를 얻을 수 있습니다.
      origin    https://github.com/<your_github_username>/<your_project_name> (fetch)
      origin    https://github.com/<your_github_username>/<your_project_name> (push)
      upstream  https://github.com/<the_original_repository>/<your_project_name> (fetch)
      upstream  https://github.com/<the_original_repository>/<your_project_name> (push)
    
    현재, 지점 (원본) 과 메인 (상류) 저장소를 추가했기 때문에, 작업을 시작할 수 있습니다.

    변경 내용 저장


    일부 작업이 완료되면 다음 도구를 사용하여 변경된 모든 파일을 검사할 수 있습니다.git status변경 프로세스의 첫 번째 단계는 제출할 파일을 모두 추가하는 것입니다.git add -A또는git add .이 두 옵션 사이의 차이점은 -A 옵션이 모든 변경 사항을 임시 저장 상태(제출에 사용)에 추가하는 데 있다.점(.)삭제된 파일을 제외한 모든 파일을 추가할 수 있습니다.
    다음에 모든 파일을 추가한 후에 제출할 수 있습니다.커밋을 수행하면 변경 내용이 로컬 저장소에 저장됩니다.너는 다른 방식으로 할 수 있다.git commit제출 제목과 설명을 추가할 수 있는 텍스트 편집기를 열 것입니다.git commit -m "<your_commit_message>"이렇게 하면 텍스트 편집기에 입력하지 않고 같은 줄에 제출 상세 정보를 추가할 수 있습니다.

    변경 내용 병합 또는 재조정


    새로 작성한 커밋을 Github의 로컬 저장소로 계속 푸시하기 전에 이제 홈 저장소와 동기화할 수 있는 가장 좋은 시기입니다.우선, 프로젝트를 최신 버전 (commit) 으로 업데이트하기 위해서, 주 지점으로 돌아가야 합니다.git checkout master이제 마스터 분기로 전환되었으므로 최신 버전의 홈 저장소를 사용하여 업데이트해야 합니다.이렇게 하려면 fetch 명령을 사용할 수 있습니다.git fetch upstream master또는 pull 명령:git pull upstream master이 차이점은fetch 명령이 상위 저장소에서 변경 사항을 가져오지만 로컬 저장소에 적용되지 않는다는 것입니다.다음은merge나rebase 명령을 실행해야 합니다. (다음 절에서 설명할 것입니다.)
    pull 명령은 이 두 동작을 동시에 실행합니다. 변경 사항을 가져와 로컬 저장소에 통합합니다.
    주의해야 할 것은 세 번째 파라미터(상류)는 그 중에서 얻은 원격 저장소의 이름이다.로컬 저장소와 홈 저장소를 동기화해야 하기 때문에 업스트림을 선택합니다.다음 단계에서는 작업 중인 분기로 전환합니다.git checkout <name_of_your_working_branch>나머지는 메인 지점 (우리가 이전에 최신 버전의 홈 저장소와 동기화한 것) 의 새로운 변경 사항을 현재 작업 지점에 적용하는 것입니다.이 점을 해낼 수 있는 두 가지 방법이 있다.

    병합

    git merge master첫 번째 방법은 홈 저장소의 모든 제출과 통합해서 새로운 통합 제출을 만드는 것입니다.

    보시다시피 C4는 새로 작성한 제출이고 C3은 홈 저장소의 새 제출입니다.merge 명령을 실행하면 commits C3과 C4로 구성된 새 merge commit(C5)을 만들 수 있습니다.

    다시 기초를 정하다

    git rebase master두 번째 방법은 홈 저장소의 모든 제출을 사용하여 제출 시간을 다시 설정하는 것입니다. 이것은 통합을 사용하는 것처럼 새로운 통합 제출을 만들지는 않지만 같은 제출 횟수를 보류합니다. (홈 저장소의 모든 제출 + 새 제출)다음 그림은 모양새를 보여 줍니다.

    C4는 작성한 커밋이고 C3은 홈 저장소의 새 커밋입니다.커밋은 홈 저장소(C3 커밋)의 새 변경 사항에 적용됩니다.
    문제는--어떤 것을 사용합니까?만약 당신이 한 프로젝트에서 혼자 일한다면, 제출 역사를 더욱 명확하게 할 수 있기 때문에rebase를 사용하는 것을 권장합니다.다른 사람과 프로젝트를 처리하고 있다면,rebase를 사용하면 일치하지 않을 수도 있고,merge를 사용할 때, 제출 기록을 항상 보존할 수 있습니다.결국 이것은 개인의 선호나 프로젝트 관리자가 프로젝트를 보고 싶은 방식에 달려 있다.

    변혁을 추진하다


    홈 저장소에 제출된 변경 사항을 통합하거나 기초를 다시 설정했습니다. 드디어 변경 사항을 Github의 저장소로 전송할 수 있습니다.Google의 포인터 원격 저장소 이름은 origin입니다. 따라서 변경을 추진하는 명령은 다음과 같습니다.git push origin <name_of_your_working_branch>변경 사항을 Github의 지점 원격 저장소로 성공적으로 전송했습니다.
    마지막 단계는 작업을 적용하기 위해 주 원격 저장소에 새 Pull 요청을 작성하는 것입니다.이를 위해서는 Github의 분기 저장소로 이동해야 합니다.https://github.com/<your_github_username>/<your_project_name>여기서 다음과 같은 새로운 메시지가 표시됩니다.

    비교 및 끌어오기 요청 버튼을 클릭하면 저장소(기본 저장소) 및 기본 저장소(기본 저장소) 및 해당 분기(이 경우 기본 저장소의 작업 분기 이름 및 기본 저장소의 기본 저장소)를 선택해야 한다는 새로운 프롬프트가 열립니다.다음 그림은 예제를 보여 줍니다.

    필요하면 요청 제목과 설명을 편집할 수 있습니다.만족하면 Create pull request를 누르면pull request를 만들 수 있습니다.

    pull 요청을 만들면 프로젝트 관리자가 코드를 검토하고 통합이 가능한지, 변경이 필요한지 결정합니다.

    요약


    이 글에서, 나는 메모리 라이브러리 준비, 변경 사항 추가, 변경 사항을 Github로 전송하고,pull 요청을 만드는 과정을 설명하였다.Git를 어떻게 사용하는지 더 잘 이해해야 한다. Git가 인코딩 체험을 개선할 수 있기를 바란다.

    좋은 웹페이지 즐겨찾기