2014-11-11 4 views
1

하나의 디렉토리를 제외하고 모두 병합하고 싶습니다. 그래서 나는하려고 생각하고있다git는 하나의 디렉토리를 제외한 모든 것을 병합합니다.

git add --all . 
git reset /bad_directory/* 
git commit -m "commit message" 
git pull my_project master 
git push my_project master 

이것이 바르다? 물론 나는 이것을 실행하고 상황을 악화시키는 것을 원하지 않기 때문에 묻는다. 감사. 이러한 목표를 달성하기 위해

+0

"병합"에 대해 묻는 중이지만'git merge '를 사용하지 않는 것이 좋습니다. 관련 브랜치 이름을 포함하여 원하는 작업을 정확하게 명시하십시오. – Chris

+0

나는 밀어 넣기를 당기는 것을 의미한다. 그것이 내가 병합하는 방법이다. 아마도 용어의 오용 일지 모르지만, 나는 '당기고 밀어 붙이는 것'을 의미합니다. 물론 주된 관심사는'bad_directory'입니다 : 나는 그것을 버리고 싶습니다. –

답변

0

한 가지 방법으로 "bad_directory"를 추가하지 않는 것입니다 커밋 나중에 그들을 유지하려는 경우, 다음 다음 "bad_directory"에 변경 사항을 숨기고, 다른 모든 파일을 커밋 :

git add #{list of files to add} 
git commit -m "commit message" 
git stash 
git pull origin master # consider doing a --rebase here 
git push origin master 

git-stash에서 읽어야하지만 나중에 숨김의 내용을 던지거나 버릴 수 있습니다.

git-reset의 문제점은 git-reset -hard를 원한다고 가정하고 서브 디렉토리에서 할 수 없다는 것입니다.

+0

'git add # {추가 할 파일 목록}'은 경건하지 않을 것입니다. 그래서 내가 하나의 디렉토리를 제외시킬 수있는 명령을 기대하고있다. –

+0

그러면'git add -A' 다음에'git rm --cached -r bad_dir'이 붙습니다. – Michael

+0

~'git add -A.; git reset bad-dir' ~이 질문에 맞을지도 모릅니다. , 효과는 내가 상상할 수있는 많은 상황에 맞습니다. 상황이 좋지 않은 곳이라면, 여기에있는 은닉/은닉 쌍이 중요한 부분 인 것 같습니다. 이것이 OP 질문에 대한 것입니다. 대담한 팝이 합쳐져서 많은 사람들을 놀라게하는 알림을 추가 할 수 있습니다. – jthill

관련 문제