Git Deployment

Full Stack Development Mastery: From Code to Cloud with Visual Studio Code and GitHub

By the Domain India teamPublished 9 min read
Knowledge base article
Contents (13 sections)

Visual Studio Code and GitHub are the everyday tools of most full-stack developers: one is where you write and debug code, the other is where it is stored, reviewed and shipped. This guide walks through a modern workflow from an empty folder to a deployed application, with the commands and settings that are current in 2026.

Key takeaways

Install VS Code, Git and a current LTS release of Node.js, add a few extensions (ESLint, Prettier, GitLens), and connect to GitHub with an SSH key. Work on short-lived branches off main, open pull requests for review, and let GitHub Actions run your tests on every push. Keep secrets in environment variables, never in the repository, and deploy to the platform that suits your stack.

1. Set up your machine

You need three things installed locally:

  • VS Code from the official Visual Studio Code website (Windows, macOS or Linux).
  • Git. macOS offers to install it with the Xcode command-line tools; on Windows use Git for Windows; on Linux use your package manager.
  • Node.js, even if your back end is PHP or Python, because most front-end tooling runs on it. Use a current LTS release (the even-numbered versions; Node.js 24 is the active LTS line in 2026). A version manager such as nvm lets you switch between versions per project.

Then tell Git who you are, and make main the default branch name:

bash
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
git config --global init.defaultBranch main

2. Get comfortable with VS Code

The parts you'll use every day:

  • Explorer (files), Search, Source Control and Run and Debug in the activity bar on the left.
  • The Command Palette (Ctrl+Shift+P, or Cmd+Shift+P on macOS): every command is here, so you rarely need the menus.
  • The integrated terminal (` Ctrl+ ``), where you run Git, npm and your dev server.

VS Code has no "New Project" command. A project is simply a folder: create it, then use File > Open Folder, or run code . in a terminal inside it.

Extensions worth installing

ESLint
Flags JavaScript and TypeScript problems as you type.
Prettier
Formats code consistently on save, so reviews focus on logic, not spacing.
GitLens
Shows who changed each line and why, right in the editor.
Remote - SSH
Opens a folder on a remote server as if it were local.
Language support
Tailwind CSS IntelliSense, PHP Intelephense or Python, to match your stack.

You don't need a separate browser-debugger extension any more: VS Code's built-in JavaScript debugger handles Chrome and Edge. For a local server with live reload, use your framework's dev server (for example npm run dev with Vite) rather than a static live-server extension.

3. Start a project with a sensible structure

A typical full-stack repository keeps front end and back end apart, with configuration at the root:

text
my-app/
├── client/          # front end (React, Vue, Svelte…)
├── server/          # API (Node.js, PHP, Python…)
├── .github/workflows/   # CI configuration
├── .env.example     # variable names only, no real values
├── .gitignore
└── README.md

Create a .gitignore before your first commit so dependencies and secrets never enter history:

text
node_modules/
vendor/
.env
dist/
build/

Then initialise the repository from the terminal, or with Initialize Repository in the Source Control view:

bash
git init
git add .
git commit -m "Initial commit"

4. Connect VS Code to GitHub

Use an SSH key

SSH keys avoid typing passwords and are the standard way to authenticate Git. Generate a modern Ed25519 key and add the public half to GitHub:

bash
ssh-keygen -t ed25519 -C "[email protected]"
cat ~/.ssh/id_ed25519.pub

Copy the output, then in GitHub go to Settings > SSH and GPG keys > New SSH key and paste it. Test with ssh -T [email protected]. Protect the private key with a passphrase and never share it.

Push your project

Create an empty repository on GitHub (no README, so there's nothing to merge), then:

bash
git remote add origin [email protected]:your-user/my-app.git
git push -u origin main

VS Code can do the same with Publish to GitHub in the Source Control view after you sign in with the Accounts icon. To work on an existing repository, run Git: Clone from the Command Palette and paste the SSH URL.

5. A branching workflow that stays simple

For most teams, a short-lived feature branch workflow is enough. Keep main always deployable and do each change on its own branch:

  1. Update main.
    git switch main and git pull.
  2. Create a branch.
    git switch -c feature/contact-form.
  3. Commit small, clear changes.
    git add -p lets you review each change before staging; write messages that say why, such as Validate email on contact form.
  4. Push the branch.
    git push -u origin feature/contact-form.
  5. Open a pull request
    on GitHub. Teammates review, CI runs your tests, and you merge when both pass.
  6. Delete the branch
    after merging, and start the next change from an updated main.

Resolving merge conflicts

When Git can't combine two changes to the same lines, it marks the conflict in the file:

text
<<<<<<< HEAD
your version
=======
their version
>>>>>>> feature/contact-form

VS Code highlights these blocks and offers Accept Current, Accept Incoming or Accept Both, plus a three-way merge editor. Edit until the file is correct, remove the markers, then git add the file and commit (or git rebase --continue if you were rebasing). Run your tests before pushing.

6. Debug inside VS Code

Set breakpoints by clicking beside a line number, then start your app from Run and Debug. For Node.js, anything you launch from a JavaScript Debug Terminal (such as npm run dev) stops at your breakpoints, where you can inspect variables and step through code. Commit useful configurations in .vscode/launch.json so the whole team debugs the same way.

7. Automate checks with GitHub Actions

Continuous integration runs your tests on every push and pull request, so problems are caught before they reach main. GitHub Actions is built into every repository. Create .github/workflows/ci.yml:

yaml
name: CI
on:
  push:
    branches: [main]
  pull_request:
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - uses: actions/setup-node@v5
        with:
          node-version: 24
          cache: npm
      - run: npm ci
      - run: npm run lint
      - run: npm test

Then, in the repository settings, add a branch ruleset (or branch protection rule) for main so a pull request can merge only when this check passes. Turn on Dependabot alerts and security updates so outdated dependencies with known vulnerabilities are flagged automatically.

8. Keep the application secure

Do
  • Keep API keys and database passwords in environment variables, with a committed .env.example listing only the names
  • Validate and sanitise all input on the server, and use parameterised database queries
  • Keep dependencies updated and review Dependabot alerts
Don't
  • Commit a .env file, a private key or a password, even to a private repository
  • Rely on front-end validation alone
  • Leave debug output or verbose error pages on in production

If a secret is ever pushed, treat it as leaked: rotate it at the provider immediately. Deleting the commit is not enough, because the secret remains in clones and history. For deeper coverage, see OWASP Top 10: practical defence in PHP and Node.js.

9. Running this on Domain India

Where you deploy depends on your stack:

  • Shared hosting (cPanel, DirectAdmin). Best for PHP, Laravel and WordPress. Node.js and Python apps run through the panel's app tools: on cPanel, Setup Node.js App offers Node.js 20, 22 and 24. Jailed SSH access is available on every shared hosting plan (cPanel, DirectAdmin, Webuzo); it is off by default, so ask support to enable it, and log in with an SSH key. Git is available inside the jail on cPanel. Composer isn't pre-installed but can be downloaded and run as php composer.phar, and some PHP functions are disabled; see PHP disabled functions on shared hosting. Guides: deploy with Git and jailed SSH access.
  • App Platform. Connect a GitHub repository and deploy with Deploy Now, or trigger deploys from CI with a deploy token from the client area's Deploy Tokens tab. Node.js apps are detected automatically; anything else needs a Dockerfile. Every plan includes a PostgreSQL database. Start with App Platform: getting started.
  • VPS. Full root access for any stack, self-managed and without cPanel. For a CI pipeline to a server, see GitHub Actions CI/CD to a Domain India VPS.
App Starter
₹100/mo + GST
  • 512 MB RAM per app
  • 1 vCPU
  • 5 GB NVMe SSD
  • PostgreSQL Database
See plan details
cPanel Starter
₹125/mo + GST
  • 25 GB NVMe SSD Storage
  • 50 GB Monthly Bandwidth
  • 1 Website
  • 10 Email Accounts
See plan details

Prices on the cards are Domain India list prices and exclude 18% GST.

Do I need GitHub to use Git in VS Code?

No. Git works entirely on your computer, and VS Code's Source Control view uses it directly. GitHub (or another host) adds an online copy of the repository, pull requests, code review and CI.

Should I use SSH or HTTPS to connect to GitHub?

Either works. SSH with an Ed25519 key avoids typing credentials and is the common choice for developers. HTTPS with the Git Credential Manager or VS Code's GitHub sign-in is simpler on machines where you can't manage SSH keys.

Which Node.js version should I use in 2026?

Use a current LTS release, which are the even-numbered versions. Node.js 24 is the active LTS line in 2026. Match the version you develop on to the version your hosting runs.

What is the difference between merge and rebase?

Merge combines two branches and records a merge commit, keeping the full history. Rebase replays your commits on top of the latest main for a straight history. Never rebase commits that others have already pulled.

How do I stop committing my .env file?

Add .env to .gitignore before your first commit. If it was already committed, run git rm --cached .env, commit, and rotate every secret it contained, because the old values stay in history.

Can I deploy from GitHub to Domain India?

Yes. On shared hosting you can deploy with Git over jailed SSH once support enables it. On the App Platform you connect a GitHub repository and deploy with Deploy Now or a deploy token from CI. On a VPS you can run any pipeline you like.

Ready to ship your project? Compare the App Platform, cPanel hosting and VPS servers, or open a support ticket to have jailed SSH enabled on your hosting account.

Deploy your code on Domain India

Connect a GitHub repository, deploy Node.js automatically or any stack with a Dockerfile, with a PostgreSQL database on every plan.

See App Platform plans

Was this article helpful?

Your answer helps us decide what to improve next.

Still need help? Open a support ticket and our team will reply.

Prefer an app? Add this site to your home screen.Get the app