git tips - merge, revert

本文提供了一系列指南,包括配置远程仓库、同步分叉、合并冲突及还原未提交更改的方法,适用于使用Git进行版本控制的开发者。

How to merge a repo you have forked

https://help.github.com/articles/configuring-a-remote-for-a-fork/

https://help.github.com/articles/syncing-a-fork/


how to merge conflict

https://help.github.com/articles/resolving-a-merge-conflict-from-the-command-line/


how to revert all uncommitted changes

http://stackoverflow.com/questions/14075581/git-undo-all-uncommitted-changes

git reset
git checkout .
git clean -fdx


`git pull`、`git reset --merge` 和 `git rebase` 这三个命令组合使用可以在不同场景下灵活处理版本控制问题。 `git pull` 是 `git fetch` 和 `git merge` 的组合,它会从远程仓库获取最新的提交,并将其合并到当前本地分支。这可以让本地分支与远程分支保持同步,可能会创建一个合并提交,导致提交历史中出现分叉[^1][^2][^3]。 `git reset --merge` 用于将当前分支的指针重置到指定的版本,同时尝试合并工作区和暂存区的修改。它会保留部分修改,与 `git reset --hard` 不同,不会完全丢弃工作区和暂存区的内容[^1]。 `git rebase` 会将当前分支的提交移到指定分支的末尾,使提交历史保持线性,避免出现合并提交和分叉。在变基过程中,每次提交可能都需要处理冲突,解决冲突后可以使用 `git rebase --continue` 继续操作,或者使用 `git rebase --skip` 忽略冲突[^1][^3]。 这三个命令组合使用的常见场景和作用如下: #### 场景一:同步远程分支并清理本地提交历史 ```bash # 从远程仓库拉取最新提交并合并到本地分支 git pull # 假设要回退到上一个提交版本,同时保留工作区和暂存区的修改 git reset --merge HEAD^ # 将当前分支的提交变基到指定分支(如 origin/main),使提交历史保持线性 git rebase origin/main ``` 在这个场景中,`git pull` 确保本地分支与远程分支同步,`git reset --merge` 可以撤销最近的提交但保留修改,`git rebase` 则将本地的修改以线性方式应用到指定分支上,使提交历史更加整洁。 #### 场景二:处理冲突并整理提交历史 ```bash # 从远程仓库拉取最新提交,可能会遇到冲突 git pull # 手动解决冲突后,使用 git reset --merge 撤销合并操作,保留冲突修改 git reset --merge # 对本地提交进行变基操作,逐个处理提交中的冲突 git rebase -i origin/main ``` 这里,`git pull` 引发冲突后,`git reset --merge` 可以撤销合并,让用户重新处理冲突。`git rebase -i` 可以交互式地对提交进行整理,如合并、删除或修改提交信息,进一步优化提交历史。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值