2013-12-15 3 views
0

저는 master 및 gh-pages 분기가있는 Laravel App이있는 저장소가 있습니다.git checkout gh-pages 분기에 master 분기의 파일이 있습니다.

내가 할 때

git checkout gh-pages 

모든 작동하지만 두 개의 디렉토리 '응용 프로그램'마스터 지점 쇼에서 위로 '공급 업체'. gh-pages 브랜치에서는 두 페이지를 gitignore에 추가하여 gh-pages 원격 브랜치로 푸시되지 않도록했습니다. 그런 다음 공급 업체 디렉토리를 삭제하려고했습니다. master 브랜치로 돌아 왔을 때 벤더 디렉토리가 없어 졌으므로 나는 그것을 얻기 위해 작곡가 설치를 실행해야했습니다.

그런 다음 저장소를 다시 복제하고 gh-pages 분기를 가져오고 같은 문제가 발생합니다.

gh-pages 브랜치에서는 무시되지만 그들은 거기에 속하지 않으므로 나는 왜 그들이 거기에 있는지 혼란스러워합니다. 이 두 가지 디렉토리에 나타나는 유일한 두 개의 디렉토리입니다.

github https://github.com/isimmons/office-twit에있는 저장소를 보면이 디렉토리가 존재하지 않는다는 것을 알 수 있습니다. 그래서 내 로컬 복제본 저장소에 왜 있는지 알 수 없습니다.

업데이트 : clo 출력의 전체 목록은 여기에서 repo 클린 복제본으로 시작하십시오./app 디렉토리를 gh-pages 브랜치에서 없애고 문제가 여전히/vendor 디렉토리에 있습니다.

C:\Users\lotus\projects 
λ git clone [email protected]:isimmons/office-twit.git 
Cloning into 'office-twit'... 
remote: Counting objects: 470, done. 
remote: Compressing objects: 100% (254/254), done. 
rRemote: Total 470 (delta 190), reused 458 (delta 178) 
Receiving objects: 100% (470/470), 946.23 KiB | 460.00 KiB/s, done. 
Resolving deltas: 100% (190/190), done. 

C:\Users\lotus\projects 
λ cd office-twit\ 

C:\Users\lotus\projects\office-twit (master) 
λ ls 
app  bootstrap  composer.lock phpunit.xml readme.md upgrade.md 
artisan composer.json CONTRIBUTING.md public  server.php 

C:\Users\lotus\projects\office-twit (master) 
λ git remote 
origin 

C:\Users\lotus\projects\office-twit (master) 
λ git branch 
* master 

이 시점에서 모든 것이 좋습니다. 내가 가진 모든 것이 'master'브랜치가있는 'origin'remote이고,/vendor 디렉토리가 없어야한다는 것을 두 번 확인했다.

gh-pages 브랜치를 가져 오기 전에/vendor 디렉토리를 추가하는 'composer update'를 수행합니다. 이 때문에/공급 업체는 .gitignore 파일에 있어야 나는이 시점에서해야하고, 자식의 상태와 같은 내가/공급 업체에 볼 수있는 디렉토리의 내용을 나열

C:\Users\lotus\projects\office-twit (master) 
λ composer update 
Loading composer repositories with package information 
Updating dependencies (including require-dev) 
    - Installing intouch/newrelic (dev-master aca23cc) 
    Loading from cache 

    - Installing symfony/translation (2.4.x-dev 0919e0f) 
    Loading from cache 

    . . . many more packages install . . . 

Generating autoload files 
Generating optimized class loader 

깨끗한 디렉토리를 보여줍니다.

C:\Users\lotus\projects\office-twit (master) 
λ ls 
app  bootstrap  composer.lock phpunit.xml readme.md upgrade.md 
artisan composer.json CONTRIBUTING.md public  server.php vendor 

C:\Users\lotus\projects\office-twit (master) 
λ git status 
# On branch master 
nothing to commit, working directory clean 

다음은 내가 체크 아웃 내가 원격 (원점)가 뭔지 동일해야합니다 로컬 그래서 무엇 GH-페이지 분기를 추적 할 수 있습니다.

C:\Users\lotus\projects\office-twit (master) 
λ git checkout -b gh-pages origin/gh-pages 
Branch gh-pages set up to track remote branch gh-pages from origin. 
Switched to a new branch 'gh-pages' 

어떻게 든 볼 수있는/공급 업체 디렉토리는 디렉토리가 존재하지 않습니다 https://github.com/isimmons/office-twit/tree/gh-pages에서 원격보기 GH-페이지 분기에 비록 GH-페이지 디렉토리에 표시한다. 그래서 이것은 지역적으로 일어나고 있습니다.

C:\Users\lotus\projects\office-twit (gh-pages) 
λ ls 
assets index.html README.md vendor 

C:\Users\lotus\projects\office-twit (gh-pages) 
λ git status 
# On branch gh-pages 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
#  vendor/ 
nothing added to commit but untracked files present (use "git add" to track) 

나는/공급 업체가 속해 ​​있지 않고 추적되는 것을 계속됩니다 .gitignore 할 수/공급 업체를 추가하는 동안, 그것은 거기 안 때문에이 시점에서 GH-페이지를 밀어 싶지 않아 모든.

gh-pages 브랜치에서/vendor를 삭제하면 git status에 깨끗한 작업 디렉토리가 표시되지만 다시 master 브랜치로 변경하면/공급 업체도 삭제됩니다.

C:\Users\lotus\projects\office-twit (gh-pages) 
λ rm -rf vendor 

C:\Users\lotus\projects\office-twit (gh-pages) 
λ git status 
# On branch gh-pages 
nothing to commit, working directory clean 

C:\Users\lotus\projects\office-twit (gh-pages) 
λ git checkout master 
Switched to branch 'master' 

C:\Users\lotus\projects\office-twit (master) 
λ ls 
app  bootstrap  composer.lock phpunit.xml readme.md upgrade.md 
artisan composer.json CONTRIBUTING.md public  server.php 

마지막 업데이트 : 나는 왜 그/app 디렉토리가 전에 있었는지 알아 냈습니다.master 브랜치가 깨끗한 경우에도 SublimeText에서 편집을 위해 로컬 repo를 열었을 때 gh-pages 브랜치로 변경하면 해당 브랜치에/app가 다시 나타납니다. 내가 엄격하게 cli를 사용했기 때문에 이것은 일어나지 않았습니다. 따라서 문제의 그 부분에 대한 해결책은 브랜치를 전환하기 전에/app 디렉토리를 완전히 닫는 것입니다.

+0

GitHub이'gh-pages' 폴더 대신'gh-pages' 브랜치를 원한다는 것이 이상하게 보입니다. 폴더를 사용하면 프로젝트의 데모에서 마스터의 파일을 사용하는 것이 훨씬 쉽습니다. 두 가지를 항상 동기화 상태로 유지하지 않아도됩니다. [gh- 페이지를 마스터 링하여 미러링하는 방법] (http://stackoverflow.com/questions/5807459/github-mirroring-gh-pages-to-master)에 대한 높은 투표 결과가 있습니다. –

답변

1

gh-pages에서 /app/vendor을 무시합니다. master에서 실제로는 /vendor, /app 만 무시하고 있습니다.

로컬 복제본에 무엇이 있더라도 리포지토리에 없으면 리포지토리에서 가져 오지 않았으므로 다른 방법이있을 것입니다.

당신이 혼란스러워하고있는 것처럼 보입니다. 그게 전부입니다. 클린 클론을 사용하고 분기 간을 전환하면 모든 것이 예상대로 작동합니다. master에만 app dir이 있고 아무도 vendor dir이되지 않습니다.

작업 디렉토리가 깨끗하고 (변경 사항이없고 단계적으로 변경된 사항이 없음) master에서 gh-pages으로 전환하면 Git은 /app 디렉토리를 올바르게 제거합니다. 당신이 master에서 gh-pages로 전환하면

UPDATE

, 힘내 올바르게 무시 표시됩니다 vendor를 제거되지 않습니다. master 분기는이 디렉토리를 추적하지 않으며 자동으로 제거하면 위험 할 수 있습니다. 그래서 그것을 제거하지 않으며 이것은 정상입니다. .gitignore/vendor을 다시 추가하면 모든 문제가 해결 될 것입니다.

+0

오른쪽, 마스터는/app가 있어야합니다. 로컬 적으로는/vendor가 작곡가 설치를 수행합니다. 마스터 지점에는 아무런 문제가 없습니다. 그것은 내가 로컬에서 gh-pages를 체크 아웃 할 때 편집자 (sublimetext)에서 파일이 변경되는 것을 볼 수 있으며/app 및/vendor를 제외하고는 모두 변경됩니다. 나는 커맨드 라인에서 ls를했고 그것들 역시 거기에리스트되어있다. 나는 아침에 새로운 클론을 시험해보고 무슨 일이 일어날지를 볼 것입니다. 어쩌면 나는 뭔가를 엉망으로 만든 다음 그것을 볼 것입니다. – isimmons

+0

새 복제본이 필요 없습니다. 작업 디렉토리가 깨끗하고 (변경 사항이없고 단계적으로 변경되지 않은) 마스터 페이지에서 gh 페이지로 전환하면 Git은/app 디렉토리를 제거합니다. – janos

+0

나는 cli의 모든 결과를 보여주기 위해 질문을 업데이트했다. 이번에는 에디터에서 repo를 열지 않고 깨끗한 클론으로 시작하여 SublimeText가 이상한 일을하지 않았는지 확인하십시오. 어쩌면 복제하고 지점을 조사 할 때 제가 잘못하고있는 것을 볼 수 있습니다. – isimmons

관련 문제