2013-03-11 1 views
4

나는 프로젝트를 가지고 있으며 프로젝트 과정에서 나는 디렉토리의 이름을 좋아하지 않는다는 것을 깨달았다.git에서 폴더의 이름을 바꾸고 대화 형 리베이스로 숨기는 방법은 무엇입니까?

GIT에서는 디렉터리의 이름을 바꾼 다음 커밋 할 수 있지만 기록에는 이전 폴더가 계속 표시됩니다.

이전 커밋으로 이름 변경을 리베이스하고 싶습니다. 그래서 평소에 무엇을 할 것인가 :

git rebase -i origin/master 

그런 다음 폴더 이름 변경 커밋을 맨 위로 이동합니다.
그러나 예상 한 git로 해결해야 할 많은 충돌이 발생합니다.

더 많은 자동화 된 방법이 있습니까?

+1

내가 아는 한 자동으로 처리 할 수 ​​없습니다. GIT가 자동으로 수행 할 수 있다면 GIT는 충돌을 일으키지 않습니다. –

+1

또한 어떤 종류의 갈등이 있습니까? 그것들은 이름 바꾸기와 직접적으로 관련이 없을 수도 있습니다. –

+0

잘 커밋 된 트리에 새 클래스를 추가하고 그 추가는 충돌로 나타납니다. –

답변

4

당신이 누군가와 공유하지 않은 것이 있다면, 어쨌든 그것을 rebase하려고하기 때문에 나는 이름 바꾸기가 포함 된 커밋을 제거하고 filter-branch를 할 것입니다. 그 foo는 가정

나쁜 디렉토리의 첫 번째 항목을 포함하고 이름 바꾸기 최신 커밋입니다 :

git reset --hard HEAD^ # removes the rename commit 
git filter-branch --tree-filter "mv bad good" foo^..HEAD 

이 좋은에 나쁜 디렉토리의 이름을 변경합니다.

관련 문제