# How to Compare a Local Git Branch With Its Remote Branch

Comparing a local Git branch with its remote counterpart is a common task to understand the differences in commits and changes between the two. Below are several methods to achieve this comparison.

### 1. Using `git diff`

To compare the differences between a local branch and its remote branch, you can use the `git diff` command.

### Compare with Remote Branch

```
git diff <local-branch>..<remote-branch>
```

Example:

```
git diff master..origin/master
```

This command will show you the differences in the files between your local `master` branch and the remote `master` branch on `origin`.

### 2. Using `git log`

To see the commit differences between the two branches, you can use the `git log` command.

### Commits in Local Branch but Not in Remote

```
git log <remote-branch>..<local-branch>
```

Example:

```
git log origin/master..master
```

This command lists the commits that are in the local `master` branch but not in the remote `master` branch.

### Commits in Remote Branch but Not in Local

```
git log <local-branch>..<remote-branch>
```

Example:

```
git log master..origin/master
```

This command lists the commits that are in the remote `master` branch but not in the local `master` branch.

### 3. Using `git fetch` and `git status`

First, fetch the latest changes from the remote repository to ensure you have the latest references.

```
git fetch
```

Then, check the status to see if your local branch is ahead or behind the remote branch.

```
git status
```

### 4. Using Git GUI Tools

Many Git GUI tools provide visual ways to compare branches, such as GitKraken, SourceTree, and GitHub Desktop.

### 5. Using `git cherry`

The `git cherry` command can show which commits from your local branch have not yet been applied to the upstream branch.

```
git cherry -v <upstream> <local-branch>
```

Example:

```
git cherry -v origin/master master
```

### Example Scenario

Suppose you are working on a branch called `feature-branch` and you want to compare it with its remote counterpart `origin/feature-branch`.

1. Fetch the latest changes from the remote repository.
    
    ```
    git fetch
    ```
    
2. Use `git diff` to see the differences in the files.
    
    ```
    git diff feature-branch..origin/feature-branch
    ```
    
3. Use `git log` to see the commits in your local branch that are not in the remote branch.
    
    ```
    git log origin/feature-branch..feature-branch
    ```
    
4. Check the status to see if your branch is ahead or behind.
    
    ```
    git status
    ```
    
5. Use `git cherry` to see which commits are on your local branch but not on the remote.
    
    ```
    git cherry -v origin/feature-branch feature-branch
    ```
    

### Conclusion

By using these commands, you can effectively compare your local branch with its remote counterpart to understand the differences in commits and file changes.