> For the complete documentation index, see [llms.txt](https://wiki.berkie.ee/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.berkie.ee/techops/getting-started-projects/web-demo-project/assignment-4-starting-with-full-stack.md).

# Assignment 4: Starting with Full Stack

Now that you've learned how to mess with both parts, the frontend and backend, let's put them together!&#x20;

First, save your changes from the previous section by

1. creating a new branch
2. staging the files you've changed
3. committing to your new branch
4. push to remote if you'd like

Let's get the most updated skeleton code by running

```bash
git pull origin main
```

Ideally, you should have no merge conflicts and no error messages. However, it's likely that you will run into a message that may look like this

```
warning: Pulling without specifying how to reconcile divergent branches is
discouraged. You can squelch this message by running one of the following
commands sometime before your next pull:

  git config pull.rebase false  # merge (the default strategy)
  git config pull.rebase true   # rebase
  git config pull.ff only       # fast-forward only

You can replace "git config" with "git config --global" to set a default
preference for all repositories. You can also pass --rebase, --no-rebase,
or --ff-only on the command line to override the configured default per
invocation.
```

This means that your set of local changes have diverged from the remote. Generally, we like to use the `rebase` method. This means that you move your set of changes on top of the new ones on remote, and combine them. More about rebasing here:

{% embed url="<https://docs.github.com/en/get-started/using-git/about-git-rebase>" %}

Now let's move on to the actual assignment.
