programing

코드의 최신 버전을 얻으려면 어떻게 해야 합니까?

goodsources 2023. 6. 30. 22:19
반응형

코드의 최신 버전을 얻으려면 어떻게 해야 합니까?

Git 1.7.4.1을 사용하고 있습니다.

저장소에서 최신 버전의 코드를 가져오려고 하는데 다음 오류가 발생합니다.

$ git pull
….
M   selenium/ant/build.properties
….
M   selenium/scripts/linux/get_latest_updates.sh
M   selenium/scripts/windows/start-selenium.bat
Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>' as appropriate to mark resolution, or use 'git commit -a'.

툴이 불만을 제기하는 파일의 로컬 복사본을 삭제했지만 여전히 오류가 발생합니다.

원격 저장소에서 최신 버전을 체크아웃하려면 어떻게 해야 합니까?

로컬 변경 사항(추적되지 않거나 생성된 파일 또는 우연히 여기에 있는 하위 저장소 포함)을 신경 쓰지 않고 저장소의 복사본만 원하는 경우:

git reset --hard HEAD
git clean -xffd
git pull

로컬에서 변경한 내용은 삭제되므로 주의하여 사용하십시오.대해 생각하다rm -Rf이렇게 할 때.

사례 1: 로컬 변경 사항에 관심 없음

  • 솔루션 1: 최신 코드를 가져와 코드를 재설정합니다.

    git fetch origin
    git reset --hard origin/[tag/branch/commit-id usually: master]
    
  • 솔루션 2: 폴더를 삭제하고 다시 복제합니다.d

    rm -rf [project_folder]
    git clone [remote_repo]
    

사례 2: 지역적 변화에 대한 관심

  • 솔루션 1: 새로운 온라인 버전과 충돌 없음

    git fetch origin
    git status
    

    다음과 같은 내용을 보고합니다.

    Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
    

    그런 다음 최신 버전을 가져옵니다.

    git pull
    
  • 솔루션 2: 새로운 온라인 버전과 충돌

    git fetch origin
    git status
    

    다음과 같은 내용을 보고합니다.

    error: Your local changes to the following files would be overwritten by merge:
        file_name
    Please, commit your changes or stash them before you can merge.
    Aborting
    

    로컬 변경 커밋

    git add .
    git commit -m ‘Commit msg’
    

    변경 사항을 가져오려고 시도합니다(실패합니다).

    git pull
    

    다음과 같은 내용을 보고합니다.

    Pull is not possible because you have unmerged files.
    Please, fix them up in the work tree, and then use 'git add/rm <file>'
    as appropriate to mark resolution, or use 'git commit -a'.
    

    충돌 파일을 열고 충돌을 해결합니다.그러면:

    git add .
    git commit -m ‘Fix conflicts’
    git pull
    

    다음과 같은 내용을 보고합니다.

    Already up-to-date.
    

추가 정보:이전 커밋으로 되돌리려면 'git reset --hard HEAD'를 어떻게 사용합니까?

저는 당신이 수정한 파일들을 삭제했을 수도 있다고 생각합니다(그 변경 사항들에 신경 쓰지 않았기 때문에). 그리고 이제 git는 삭제를 변경으로 받아들이고 있습니다.

다음은 작업 복사본에서 변경사항을 "스택"(실제 다시 필요한 경우 검색 가능)으로 이동하여 최신 변경사항을 업스트림에서 끌어낼 수 있는 방법입니다.

git stash  
git pull

파일을 검색하려는 경우(업스트림 변경 사항 및 모든 것과 충돌 가능성 있음)git stash apply코드 위에 변경 사항을 추가할 수 있습니다.그렇게 하면 "실행 취소" 방식이 됩니다.

먼저 파일을 병합해야 합니다.도아git status병합할 파일이 무엇인지 확인합니다. 충돌을 먼저 해결해야 합니다.이 작업이 완료되면 수행합니다.git add file_merged그리고 당신의 것을 하라.pull다시.

이 코드를 사용해 보세요.

cd /go/to/path
git pull origin master

작업 폴더의 모든 내용(예: 실패하거나 중단된 병합 결과)을 버리고 이전의 깨끗한 커밋으로 되돌리려면 다음을 수행합니다.git reset --hard.

로컬 변경 내용을 폐기하고 리모컨에 있는 내용을 삭제하시겠습니까?

다른 모든 것이 실패하고 "재설정"이 두렵다면 가장 간단한 방법은 원본을 새 디렉터리로 복제하고 이전 디렉터리를 버리는 것입니다.

이 명령을 실행하면 프로젝트 버전인 최신 태그를 얻을 수 있습니다.

git describe --abbrev=0 --tags

질문에 답하려면 두 가지 단계가 있습니다.

  1. Git 리포스팅에서 최신 변경사항 가져오기git pull
  2. 작업 를 정리하려면 다음을 합니다.git checkout -- .Gitrepo 서컬 로최의 신변사표시니됩다항이경. 로컬 변경을 합니다.모든 로컬 단계별 변경 내용을 정리합니다.

부디 참고하세요git checkout -- .로컬 작업 디렉토리의 모든 변경 내용을 삭제합니다.선택적 파일 사용을 위해 변경사항을 취소하려는 경우git checkout -- <filename>그리고 준비되지 않은 변경사항을 잃지 않으려는 경우 사용git stash나중에 필요할 경우 저장하는 동안 준비되지 않은 모든 변경사항을 로컬 작업 디렉토리에서 정리합니다.

제가 보기엔 당신이 핵심을 가지고 있는 것처럼 들립니다.오토클롭의core.autocolf=true는 CRLF 새 줄이 리포지토리에 체크인된 경우 Windows에서 설명하는 것과 같은 문제를 발생시킬 수 있습니다.코어를 비활성화합니다.저장소에 대한 autocolf 및 하드 드라이브를 수행합니다.

Git GUI를 사용하는 경우 먼저 가져온 다음 병합합니다.

원격 메뉴를 통해 가져오기 >> 가져오기 >> 오리진.병합 메뉴 >> 로컬 병합을 통해 병합합니다.

다음 대화 상자가 나타납니다.

enter image description here

분기 추적 라디오 버튼(기본적으로 선택됨)을 선택하고 노란색 상자를 비워둔 채 병합을 누르면 파일이 업데이트됩니다.

이러한 단계를 수행하기 전에 이미 일부 로컬 변경 사항을 되돌렸습니다. 나중에 병합을 통해 삭제할 필요가 없기 때문입니다.

위의 명령이 이 방법을 사용하는 데 도움이 되지 않는 경우:

  1. 포크가 있는 git 아카이브로 이동합니다.
  2. 설정 > 아래로 스크롤을 클릭하고 이 리포지토리 삭제를 클릭합니다.
  3. 삭제 확인
  4. 다시 포크하고 git 클론 <url_git>을 다시 입력합니다.
  5. 이미 최신 버전이 있습니다.

언급URL : https://stackoverflow.com/questions/6335681/how-do-i-get-the-latest-version-of-my-code

반응형