2017-05-22 3 views
1

나는 수업 동료와 함께 학교 프로젝트를 만들고 있는데, 그 중 한 명이 프로그램의 주 경계를 부 he다. 나는 주요 수정없이 프로젝트를 가지고 완벽하게 작동합니다. 어떤 방법으로 내 파일을 밀어 넣지 않고 밀어 넣을 수 있으며 나쁜 파일을 내 것으로 바꿀 수 있습니까?잡아 당김없이 힘내 밀어 내기

답변

4

다른 개발자가 관련 변경 사항을 푸시했다면, 변경 사항을 적용하지 말고 변경 사항을 병합해야합니다.

가장 좋은 해결책은 dev가 다른 의미있는 변경을 추진한다면 충돌을 해결하고 깨진 코드를 수정하는 것입니다.

분기 된 커밋에서 새 분기로 이동 한 다음 마스터 할 때 충돌로 다시 병합합니다.

# Create a new branch with your commits 
git checkout -b featureBranch 

# Get master from origin 
git checkout master 
git pull origin master 

# Add in your changes 
git merge featureBranch 

# Resolve Conflicts 

# Push to origin 
git push origin master 
당신이 진정 단지 (난 당신이을하지 않는 것이 좋습니다 ) 자신의 커밋, 당신은 당신의 밀어를 강제로 지우려면

- 이것은 당신이 무엇을 사용하여 서버에 모든 것을 덮어 쓰기를 당신의 기계에 가지고 있으십시오.

프로젝트를 진행하는 다른 모든 개발자는 현재 내역을 변경 중이므로 추가 작업을 수행해야합니다. 이것은 권고되지 않습니다.

git push origin master --force 

또한 revert 방법이있다; 이것은 선택된 커밋의 변경을 완전히 뒤집는 새로운 커밋을 생성합니다; 이를 사용하려면 먼저 깨끗한 작업 트리가 필요합니다.

# Move your commits to a new branch 
git checkout -b featureBranch 

# Get latest changes from master 
git checkout master 
git pull origin master 

# Create new commit that reverses the other devs changes 
git revert hashToRevert 

# Pull in your additional commits 
git merge featureBranch 

# Push to master 
git push origin master 
2

당신은 아마 커밋 되돌릴 수 git revert 명령을 사용할 수 있습니다. 이것은 이전 커밋의 모든 변경 사항을 취소하는 새로운 커밋을 수행합니다. 설명서 here :

git revert 명령은 커밋 된 스냅 샷을 실행 취소합니다. 그러나 대신 프로젝트 기록에서 커밋을 제거하면 커밋에 의해 도입 된 변경 사항을 취소하고 에 결과 컨텐트를 추가하는 방법을 으로 파악합니다.

일단 완료되면 되돌리기 된 커밋보다 먼저 변경 사항을 적용 할 수 있습니다.