# Recap of Key Concepts and Commands

{% hint style="info" %}
This recap will provide a concise summary of key Git concepts and commands, serving as a quick reference guide for readers to reinforce their understanding of Git fundamentals.
{% endhint %}

#### Initialising a Git Repository

To start using Git in a project, you need to initialise a repository. Navigate to your project directory and run the following command:

```bash
git init
```

This creates a new Git repository in the current directory.

#### Staging and Committing Changes

Git uses a staging area to track changes before committing them. To stage changes, use the following command:

```bash
git add <file(s)>
```

You can specify individual files or use wildcards to stage multiple files. Once changes are staged, commit them with a descriptive message using:

```bash
git commit -m "Commit message"
```

#### Checking Repository Status

To see the current status of your repository, use:

```bash
git status
```

This command displays information about untracked, modified, or staged files, as well as the branch you're on.

#### Viewing Commit History

To view the commit history of your repository, including commit messages, authors, and timestamps, run:

```bash
git log
```

You can use various flags and options to customise the log output, such as `--oneline`, `--graph`, or `--author`.

#### Working with Branches

Branches allow you to work on different features or versions of your code simultaneously. To create a new branch, use

```bash
git branch <branch-name>
```

Switch to a branch using

```bash
git checkout <branch-name>
```

You can combine these commands into one with `git checkout -b <branch-name>`. To list branches, including remote branches, use `git branch -a`.

#### Merging Branches

To merge changes from one branch into another, first switch to the target branch, then run:

```bash
git merge <source-branch>
```

Git will attempt to automatically merge the changes. In case of conflicts, you'll need to manually resolve them.

#### Pushing and Pulling Changes

To push your local commits to a remote repository, use:

```bash
git push <remote> <branch>
```

To fetch changes from a remote repository and merge them into your local branch, use:

```bash
git pull <remote> <branch>
```

Replace `<remote>` with the name of the remote repository, such as "origin," and `<branch>` with the branch name.

#### Collaborating with Remote Repositories

To clone a remote repository to your local machine, use:

```bash
git clone <repository-url>
```

To add a remote repository to your local Git configuration, use:

```bash
git remote add <remote-name> <repository-url>
```

You can then push and pull changes to and from the remote repository.

#### Ignoring Files

To exclude certain files or directories from being tracked by Git, create a file named `.gitignore` in your repository root. List the file patterns you want to ignore in this file. For example:

```
logs/
*.log
secret.txt
```

Git will not track or stage any files that match the patterns specified in `.gitignore`.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://gitdeveloperguide.solomonmarvel.com/conclusion-and-next-steps/recap-of-key-concepts-and-commands.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
