Difference between #9 and #8 of Starting your Yii Project Reference Guide (with Git VCS in Linux)

unchanged
Title
Starting your Yii Project Reference Guide (with Git VCS in Linux)
unchanged
Category
Tutorials
unchanged
Tags
git, github, reference, guide, yii
changed
Content
I've found useful to have a step by step reference guide to work with Git with
most used commands, feel free to update it with useful information you may find
interesting too.

If you don't haveGetting Yii yet

from Github
-----------------------
~~~
[php]
$ git clone https://github.com/yiisoft/yii.git
~~~

Working with your project
-------------------------

start### Start your project (being
(being at root folder)


~~~
[php]
$ yii/framework/yiic webapp myproject
$ cd myproject
~~~

initialize### Initialize git


~~~
[php]
$ git init
~~~


make### Make git add empty directories to the repository


~~~
[php]
for i in $(find . -type d -regex ``./[^.].*'' -empty); do touch
$i"/.gitignore"; done;
~~~

(source [https://gist.github.com/18780](https://gist.github.com/18780 "git
script") )

### Adding third-party extensions
Adding a yii extension repository inside your repo at a specific path (e.g. we
will add https://git.gitorious.org/lightopenid/lightopenid.git in
'protected/extensions/lightopenid')

~~~
[php]
git submodule add https://git.gitorious.org/lightopenid/lightopenid.git
protected/extensions/lightopenid
~~~
This creates the file .gitmodules in your root folder which tracks all your
modules data.

if for some reason (older git versions, cloning from another location) you end
up with an empty directory where a foreign repository should be:
~~~
[php]
git submodule update --init
~~~
should fix it. Then you can update your repository and external ones with:

~~~
[php]
git pull && git submodule update --recursive
~~~

To remove a submodule:
~~~
[php]
git rm --cached protected/extensions/lightopenid
~~~

### Ignoring files
Edit .gitignore file in root folder and add dirs/files you don't want to be in
git repo
Use ! to negate the pattern:

~~~
[php]
assets/*
!assets/.gitignore
protected/runtime/*
!protected/runtime/.gitignore
protected/data/*.db
~~~

Make### Adding your first commit


~~~
[php]
git commit -a "Initial version"
~~~
own forked repo from github as an extension
If you want to add your forked repo from github ( i.e.:
git@github.com:marcanuy/Comments-module.git ) from another repo (i.e.:
git://github.com/segoddnja/Comments-module.git)  to the extensions directory,
then:

~~~
[php]
git submodule add git@github.com:marcanuy/Comments-module.git
protected/Comments-module
cd protected/extensions/Comments-module
git remote add upstream git://github.com/segoddnja/Comments-module.git
~~~
Then every time you wish to get latest updates from the original repo you should
do:
~~~
[php]
cd protected/extensions/Comments-module
git pull upstream master
~~~

### Make your first commit


~~~
[php]
git commit -a "Initial version"
~~~

Now you are ready to go!