# Propose a change Once you [create a branch](../branches-create-a-branch/index.md) to collaborate within a workflow, you can make edits and propose a change to the **Main** branch. To propose a change, click **Save** to save your edits, then select **Propose** in the top toolbar. ![Screenshot of propose button](../../../assets/146bda915b342d10f374733cc0c234eb642aca5d76bd31b3d92cf8ebf32411a3.webp) In the **Proposal** view, name your proposal and include any relevant details to explain your proposal to approvers. In the example below, we are proposing a change to add a `Rename column` transform to clean raw data from the `Facility dataset`. ![Screenshot of create proposal popover](../../../assets/1218be7ceab8d32ff052ee0eaa1fb4a9870797ac4e356b0dfe543f2de7cb4e04.webp) Select **Create proposal** to initiate a request to the **Main** branch approvers. ## Resolve changes To minimize merge conflicts, you can merge the target branch into your current branch before completing the final merge. To do this, select **Resolve changes** next to your branch. ![The "Resolve changes" option.](../../../assets/77397ed05ac7ecbd837612026572a1edc45d498c5395d851bbb4281069b0cda3.webp) This will open a window where you can select the desired branch to merge into your pipeline. Once you have chosen a branch, select **Apply changes**. ![The "Resolve changes" dialog, with the "Apply changes" option.](../../../assets/2547651f8509f459e5686b2ec385e17eaab751de1ff6dd02f7a92aa6e1dfb267.webp) :::callout{theme="warning"} The **Resolve changes** action does not work for protected branches. Since **Resolve changes** directly saves changes to the pipeline, and protected branches do not allow direct modifications, you must use the proposal flow to merge changes into a protected branch. ::: ### Fast-forward for long-lived branches When working with multiple long-lived branches — such as staging and deployment branches — using standard merge proposals can cause recurring merge conflicts. This occurs because Pipeline Builder implements merges as squash merge commits, which breaks the shared commit history between branches. To avoid this issue, use **Resolve changes** to fast-forward your target branch to match the source branch: 1. Open the branch context menu next to your branch name. 2. Select **Resolve changes** and choose the source branch. 3. Select **Apply changes** to perform a fast-forward merge. This advances the target branch to match the source branch without creating a squash merge commit, maintaining a linear commit history and avoiding recurring conflict states. ## Reset branch You can also reset your branch to match another branch. To do this, select **Reset branch** from the dropdown menu to the left of your branch name. Then, choose the branch you want to reset to and confirm by selecting **Reset branch**. If both branches have the same version, the **Reset branch** button will be disabled. ![The reset branch option, displaying a disabled button.](../../../assets/ef67bfe430c5495d37707932f90339a6f6385f0c6dcb25822f82798b8f52e56c.webp) :::callout{theme="danger" title="Branch resets cannot be undone"} Branch resets cannot be undone. After resetting, all changes on your original branch will be lost, including saved and unsaved changes. ::: After resetting, your current branch will have the same logic and version history as the selected branch.