Angular and Git project setup

Angular-CLI, VSCode and Git/GitHub configuration

I will create Angular 4 client application with project setup needed to seamlessly develop and store source code to remote Github repository.

Projects folder structure

I will create client side SPA application as client to Java spring boot server application, created in previous blog article.

Both projects (server & client) are in separate folders, only at the deployment stage they will be combined under java server application. In the simplest micro-service deployment scenario, both applications are served from the same server instance. Embedded Tomcat server  will serve all files needed for angular client side application and to drive java REST services as application back-end.

myapp !–server ! !–SpringBootMyApp !
!–client !–AngularMyApp

Generate angular client project

After you have installed all prerequisites for angular you create a new empty application from command line. Command will create application subfolder and all required app files for simple angular app.

/myapp/client/$ ng new AngularMyApp

You can experiment with some command line switches to add additional generator options like generate routes file for example (--routing).


If you do not want to actually execute commands then add --dry-run option ("-d"  for short) and inspect generated set of commands.

$ ng new app_name –routing $ ng new app_name –dry-run $ ng new app_name -r -d

Open project in Visual Studio Code

You can open project from command line (“code .") or open folder from inside editor.

Integrate with Git  source control

After angular-cli create a project it will immediately initialize GIT folder and commit initial version of an application.

You can check log of git commits right after generating new app :

/AngularMyApp/$ git log

and result will be something like this :

Author: Angular CLI Date: Mon Jun 26 22:41:07 2017 +0200

chore: initial commit from @angular/cli

We see initial commit was done by @angular/cli tool.

Configure remote Git repository

If you wish to publish code to the Git-Hub server, you need to prepare local windows git to be able to push code to remote server without any username/password interaction.

git config –global credential.helper wincred

git config –global “user_name”

git config –global “

This type of user identification is used with HTTPS repository address for git communication.

You need to have github repository created (empty project!). When you create new repository, try to not create readme file, because you will not be able to push initial code up without “force” option. This option is not possible inside visual studio code. “Force push” is possible with command line or with github desktop client.

With remote repository created configure “git remote”  localy with correct “https” repository address :

/AngularMyApp/ $> git remote add AngularMyApp

Push code to Github

After adding remote repository to local git configuration you select “Push to…” inside visual studio code Git extension menu (…), select remote repository and push.

SSH key passphrase

You need to setup your ssh-agent correctly to work with remote git repository without constant interruptions with an question for ssh passphrase.

If you use bash terminal inside vscode and you work on windows, add the ssh-agent to the setup script in your home (~) folder (usually c:\Users\your_name\.bash_profile file.


agent_load_env () { test -f “$env” && . “$env” >| /dev/null ; }

agent_start () { (umask 077; ssh-agent >| “$env”) . “$env” >| /dev/null ; }


agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running

agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)

if [ ! “$SSH_AUTH_SOCK” ] || [ $agent_run_state = 2 ]; then agent_start ssh-add elif [ “$SSH_AUTH_SOCK” ] && [ $agent_run_state = 1 ]; then ssh-add fi

unset env

You can check with the command

git fetch

If you get the question then you probably need to create proper ssh-agent setup.



Initial code for AngularMyApp is on this github repostory.