2012-03-13 8 views
19

나는 내가 올바르게 git 당기는 곳을 알지 못하는 일부 설정이있는 서버를 가지고 있으며 github repo에있는 것을 가져 와서 배포하기 위해 다시 시작합니다.힘내 당겨 모든 걸 당기지 않고

내 커밋이 아닌 커밋이 있습니다. 그건 내 서버에 실제로 있지 않습니다. 파일은 .gitignore에 없습니다. 당겨서 당기고, 커밋을했다는 것을 어떻게 확신합니까?

정말 그것을 해결하는 방법을 모르는 당신은 항상 당신의 서버 버전이의 repo에서 커밋 반영하려면, 내가 다 :(

14:41][[email protected]] someserver_dir (master)$ git status 
# On branch master 
# Changes not staged for commit: 
# (use "git add <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
# modified: Gemfile 
# modified: Gemfile.lock 
# modified: config/assets.yml 
# modified: config/database.yml 
# 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
# randomfiles 
+0

자세한 내용은 쉽게 대답을 할 것이다 : 당신이 병합 기능을 호출 할 수 없습니다 그런 식으로, 대신에 그들은 당신이 다시 커밋에 정확히에 모든 파일을 설정 예를 들어 - git reset 대신 git pull의 사용합니다. 당신의 질문.'git status' sho 너? 로컬로 올바른 지점에 있습니까? 예를 들어, 서버의'master' 브랜치를 보면,'master'를 로컬로 체크 아웃 했습니까? 'git log origin/master..master'는 어떻습니까? –

+0

git 저장소가 공용입니까? 그렇다면 URL을 제공하십시오. –

+0

공개가 아님, git 상태는 나에게 모든 것이 멋지다는 것을 보여줍니다. – thiagofm

답변

51

를 다시 시작에 대해 생각하고, 그것은 아마 더 낫다

git fetch origin master 
git reset --hard FETCH_HEAD 
+4

나는 항상이 명령을 잊어 버린다. 그래서이 스레드로 계속 돌아 간다. 특정 브랜치에서 모든 것을 가져오고 싶다면 다른 브랜치 이름에도 '마스터'를 변경하는 것이 효과적이라는 것을 추가하고 싶을뿐입니다. – mdegges

+0

특정 브랜치로 재설정 할 수 있으므로 git reset --hard origin/master도 작동하므로 사용자가 지정한 모든 브랜치에서 작동합니다. (5 년 전에이 질문을하는 것을 보니 아주 우스운 일이었고, 배포하기 위해 git을 사용하는 원격 서버를 관리하고 있었고 나쁜 상태로 끝났음을 기억합니다.) – thiagofm