# Warning: push.default is unset; its implicit value is changing in Git 2.0

The warning message you're seeing, "push.default is unset; its implicit value is changing in Git 2.0," is informing you about changes in Git's default behavior regarding the `push.default` configuration setting. This setting determines what happens when you run `git push` without specifying a remote branch explicitly.

### Understanding `push.default`

In Git, `push.default` defines the action Git should take when you run `git push` without specifying the remote branch explicitly. The behavior of `push.default` has evolved over different Git versions, and the warning message indicates that Git 2.0 introduced changes to its default behavior.

### Addressing the Warning

To address this warning and prevent potential issues when Git updates to version 2.0 or higher, you should explicitly set `push.default` to a value that matches your preferred workflow. Here are common settings for `push.default` and their implications:

1. **Simple (Git 1.7.11 and later):**
    
    ```bash
    git config --global push.default simple
    ```
    
    - **Behavior:** When you run `git push`, Git pushes the current branch to a branch of the same name on the remote repository if it exists.
    - **Recommended:** This setting is straightforward and aligns with typical Git workflows.
2. **Current (Deprecated):**
    
    ```bash
    git config --global push.default current
    ```
    
    - **Behavior:** Similar to `simple`, but it's deprecated in favor of `simple`.
    - **Not Recommended:** Deprecated and might not be supported in future Git versions.
3. **Matching:**
    
    ```bash
    git config --global push.default matching
    ```
    
    - **Behavior:** Pushes all branches that have the same name on both local and remote repositories.
    - **Considerations:** Can push unintended branches and is less intuitive than `simple`.

### Setting `push.default`

To set `push.default` to `simple` globally (recommended), use the following command:

```bash
git config --global push.default simple
```

This ensures that Git pushes the current branch to its upstream branch with the same name, providing a clear and predictable behavior.

### Verifying the Configuration

After setting `push.default`, you can verify your Git configuration to ensure it's correctly set:

```bash
git config --global --get push.default
```

This command should return `simple` if you've successfully set the configuration.

### Conclusion

By explicitly setting `push.default` to `simple` or another appropriate value, you prevent potential issues with Git's default behavior changes in future versions. This ensures your `git push` commands behave as expected across different environments and updates.