2012-07-18 7 views
0

나는 새로운 자식이다. 로컬 서버에서 프로젝트를 복제하고 TextMate로 파일을 편집했습니다.다른 git 브랜치에서 파일 편집하기

그래서 저는 master라고하는 지점을 가졌습니다. 그런 다음 지방이라는 두 번째 지점을 만들었습니다. 나는 약간의 수정을했고, 약간의 파일을 추가했고, 그들 모두를 위탁했다. 그러나 이제는 master 브랜치로 돌아 가면 TextMate로 고대 파일 (수정되지 않은 master 브랜치 파일)을 편집 할 수 없습니다. 어떻게 해결할 수 있습니까? TextMate를 사용하지 않기로되어 있습니까? 당신이 복제 후했다 당신이 당신의 로컬 마스터 지점에 있어야이 시점에서

#clone out repo that only has master branch 
git clone path/to/repo 

#create and checkout branch local 
git checkout -b"local" 

## edit files ### 

#stage files 
git add . 

#commit changes 
git commit -m"did some work" 

#switch back to master 
git checkout master 

:

최저

, 메디

+0

권한 오류 일 수 있습니다. 힘내 당신이 파일을 편집하는 것을 막지 않을 것입니다 ... – Manatok

+0

하지만 내 파일에 내 맥에서 보면, 그들은 최신 버전에 해당합니다. TextMate를 사용하여 편집 할 수없는 것 같습니다. –

답변

2

는 다음과 같은 일을했다. 당신이 마스터로 지역의 변경 사항에 병합 할 경우 어느 시점에서

git merge local 

당신은 파일이 변경되었는지 확인 git status를 실행할 수 있으며 git branch -a을 당신이 만약 당신의 repo

에 가지 모두 볼 수 파일이 그 때 권한 문제가 될 수 정확하고 여전히 캔트 편집이 모든 않은 : 그래서 여기

sudo chmod 644 /path/to/local/files/* -R 
+0

나는 당신이 말한 것처럼 그것을 한 지점 씩 만들었습니다. 예를 들어 전환 한 후 ls 명령을 실행할 때 로컬 브랜치에서 작업 할 때 추가 한 모든 파일을 찾습니다. 그게 어떻게 가능해? –

+0

그냥 두 지점을 합병하지 못했습니다. 왜냐하면 그 순간에 그걸하고 싶지 않기 때문입니다. –

+0

파일이 자식에 의해 추적되지 않으면 자식이 제어하지 않기 때문에 분기를 전환 할 때 그대로 유지됩니다. 먼저 커밋해야합니다. 예를 들어 repo를 복제하고 파일을 추가 한 다음 해당 파일을 커밋하지 않고 분기를 전환 한 경우 파일은 분기에 커밋 할 때까지 사용자를 따라 가게됩니다. 자식 상태를 실행하면이 파일이 제목 아래에 표시됩니다. 추적되지 않은 파일 : – Manatok

1

하는있는 몇 가지 유용한는

명령 0

그런 다음

newbranch

을 생성하면 마스터 지점에있는 가정 $의 자식 체크 아웃 -b newbranch

가 여기에 일부 파일을 편집 한 다음 그

$의 자식이 추가 변경 저지해야합니다. $의 자식 나는 항상 필요

0

변경을

$의 자식 병합 newbranch을 병합 지점을

$의 자식 체크 아웃 마스터

마스터 스위치 "커밋 메시지"

을 -m 커밋 그런 식으로 편집하십시오. 삽화로서, 나는 중요한 것을 만들어 내고 파일을 즉시 조깅 할 필요가있다. 내가 끝내지 않은 파일 B를 편집하는 동안, 내가하고있는 일은 다음과 같다.

# stage and commit the fileB 
git add fileB; git commit -m 'uncompleted' 

# checkout to the branch containing file A 
git checkout branchA 

# editting the file A 

# stage and commit the fileA 
git add fileA; git commit -m 'big idea' 

# go back to the first branch 
git checkout branchB 

# reset to the previous commit without changing the working-spot 
git reset --soft HEAD~ 

# edit again and commit 
git add fileB; git commit -m 'extend the previous commit' 

지금은 그냥 내 때가 아닌 brainstrom의 인터럽트가 파일 B.에 대한 일어나지도 않은 것처럼처럼 항상 diffrent 지점에서 편집 주시기 바랍니다.

관련 문제