2016-09-29 3 views
1

모든 새로운 파일을 자동으로 추가 할 수 있지만 충돌을 해결 된 것으로 표시 할 방법은 찾고 있습니다.새 파일을 추가했지만 충돌을 해결하지 않습니다.

비 개발자가 일상적인 작업을 처리 할 수 ​​있도록 기본 Git 기능을 수행하는 개미 스크립트를 설정했습니다. 잠시 동안이 작업을 수행하고 "커밋"스크립트가 새 파일을 자동으로 추가하는 것이 안전하다고 결정했습니다. 간단히 말해, 커밋 전에 스크립트가 git add --all을 수행하도록하십시오.

그 외의 모든 충돌을 해결할 수있는 의도하지 않은 부작용이 있다는 것을 제외하고는 절대로 원하지 않습니다. 충돌이 해결되지 않은 채로 있어야 사용자가 잘못된 것을 알고 있으므로 어떻게 처리해야하는지 묻습니다.

놀랍게도, git add은 해결 된 충돌을 표시하지 않는 옵션이없는 것처럼 보입니다. 나는 충돌 해결이 진행되고 있는지 확인하기 위해 스크립트가 무엇을 찾는지 알아보기 위해 실험을하고있다. 그러나 이것을 할 수있는 더 쉬운 방법이 있다면 사람들에게 물어볼 것이라고 생각했습니다.

답변

0

리베이스 또는 병합과 같이 서버에서 무언가를 가져올 때만 충돌이 발생합니다. 리베이스 또는 병합이 충돌을 수정하지 않고 어떻게 계속 될 수 있었습니까? 이 문제를 해결하는 가장 좋은 방법은 로컬 지사에서 뭔가를 리베이스하거나 병합하는 것입니다.

1

충돌은 두 가지 방법으로 발생할 수 있습니다. 하나는 병합 중에, 다른 하나는 리베이스하는 것입니다. 그 중 하나가 진행 중이라면 자동 커밋을 원하지 않는다고 가정하는 것이 안전해야합니다.

스크립트의 형태로 솔루션 (. How to determine if Git merge is in processHow to know if there is a Git rebase in progress에서 함께 빼서)

#!/bin/bash 
git merge HEAD &> /dev/null 
result=$? 
if [ $result -ne 0 ] 
then 
    echo "Merge in progress." 
    echo "Please resolve any conflicts and complete the merge!" 
elif [ -d .git/rebase-merge -o -d .git/rebase-apply ] 
then 
    echo "Rebase in progress." 
    echo "Please resolve any conflicts and complete the rebase!" 
else 
    # Original commit script goes here. E.g.: 
    git add --all 
    git commit -m "auto commit" 
fi 


나는이을 고려하는 것이 좋습니다 싶습니다

임시 해결책. 소량의 교육으로 개발자가 아닌 사람이라도 대부분의 Git 작업을 처리 할 수 ​​있어야합니다 (특히 SourceTree과 같은 GUI 프런트 엔드 사용).

관련 문제