2016-11-22 8 views
0

Git을 사용하여 버전 관리를 관리하는 Python/Django 프로젝트를 진행하고 있습니다.힘내 로컬 마스터 브랜치가 깨진 것 같습니다.

라이브 서버에서 웹 사이트는 현재 예상대로 작동하지만 내 로컬 사본에있는 views 중 하나의 레이아웃/프리젠 테이션을 몇 가지 변경했습니다.

내 로컬 브랜치가 라이브 버전으로 최신 버전이되었을 때, 나는 pipelineProject이라는 마스터 브랜치를 새로 만들고 그 브랜치에서 작업하기 시작했다. pipelineProject을 변경하는 동안, 나는 변화를 만드는 과정에서 웹 사이트를 '망가 뜨 렸으며, 그 지점을 주인의 상태로 몇 번 되돌려 야했습니다.

는 지금 변경 사항이 내가 내 일 pipelineProject 분기가 백업되도록하기 위해 git add -Agit commit -m 'message'를 실행 한 작업 correctly-을 확인하고 싶었 상태로 내 pipelineProject 지점을 가지고있다. 내가 분명히 master 내 변경 내용을 병합 할 원하는대로

그러나, pipelineProject를 백업 한 후에, 나는 그 때, master을 체크 아웃, 내 변화를 병합하기 전에, 나는 잠시 master branch-에 있지만 일부 브라우저에서 내 웹 사이트를로드 시도 웹 사이트가로드 되어도 모든 스타일이 사라졌음에도 불구하고 페이지에 사용 된 HTML 요소 목록 (하이퍼 링크, 코드에서 몇 가지 변수 이름 &)

웹 사이트의 라이브 버전은 변경 작업을 시작하기 전과 동일한 작업 상태이므로 내 로컬 master 브랜치로 전환 해 보았습니다. git pull origin master을 사용하여 로컬 master 복사본을 현재 서버에서 실행중인 복사본으로 업데이트하십시오. 내가 이런 짓을하면

는 자식이 말하는 메시지를 표시 :

이 내 로컬 마스터가 ... 인 경우 왜 이해가 안 돼요 이미 최신

지금까지 웹 서버를 라이브 서버에서 올바르게 볼 수있는 이유는 무엇입니까?하지만 로컬 서버에서 볼 때 제대로 표시되지 않습니다 ...?

pipelineProject 가지 모두가 제대로 작동 (내가 변경 한 예상대로 표시),하지만 난 경우 내 로컬 master 지점으로 내 pipelineProject 지점을 병합하지 않으에서 로컬 웹 사이트를 볼 때 나는 내가 성공적으로 변화 한 것을 잃는다.

두 로컬이 동일하더라도 live 마스터가 작동하면 내 로컬 master이 손상되는 이유는 무엇입니까? 라이브 서버에 변경 사항을 적용하기 전에이를 어떻게 해결할 수 있습니까?

편집

그냥 생각 : 내 pipelineProject 분기 나는이 하나 내 로컬 마스터 분기를 대체 할 수있는, 제대로 작동하는 것, 그리고 다음 서버에이 밀어 때문에?

라이브 마스터가 작동 할 때 라이브 마스터가 최신 상태인데도 로컬 마스터가 고장난 이유가 있습니까?

+0

버전 관리에 포함되지 않은 것을 변경 했습니까? collectstatic 명령을 호출하지 않고 이름이 바뀐 css/js 파일처럼. 동일한 장고 설정을 라이브 및 로컬로 수행합니까? – schwobaseggl

답변

1

$ git checkout -b master # create & checkout new local master
$ git push -f origin master # push to server forcely
$ git branch -D master # delete the local master branch

$ git checkout pipelineProject # go to your pipelineProject branch 서버

에 칼 pipelineProject와 마스터와 푸시 :

  1. 예, 당신이 pipelineProject 분기와 마스터 분기를 교체 할 수 있습니다. 먼저 당신이 pipelineProject 지점이, 원산지/마스터를 추적 git checkout pipelineProjectgit branch pipelineProject -u origin/master는 다음 로컬 마스터 지점 git branch –D master을 삭제 사용할 수 있도록해야한다, 마지막으로 pipelineProject이 git branch -m pipelineProject master
  2. 예, 그것은 이유가있다 마스터의 이름을 바꿉니다. 그것은 로컬 마스터 브랜치가 원점/마스터 브랜치보다 앞서서 발생했기 때문에 (git status을 사용하여 확인할 수 있음) 원점/마스터를 앞서는 커밋을 볼 수 있으며 git log origin/master..master을 사용하십시오. 그래서 상황에 따라 "깨진"커밋을 없애고 git reset --hard <commit id which you want go back>을 사용할 수 있습니다 (master 브랜치를 삭제할 의향이 없다면)
0
  1. 지역 & 원격 마스터에 있는지 확인 같은 커밋 샤
    $ git checkout pipelineProject # go to your pipelineProject branch
    $ git branch -D master # delete the local master branch

    그런 다음 온라인으로 이동하여 마스터의 커밋 마지막 샤 복사
    $ git checkout paste-commit-sha-here # go to the remote master's last commit
    $ git checkout -b master # create & checkout local master branch

  2. 교체하십시오. 귀하의 질문