常用 git 场景
在进行本地开发时,我们会不时地遇到一些版本管理问题需要我们通过使用 git 来解决。这里我们总结了一些常见场景来帮助你快速解决问题。
同步上游 master 分支
在日常操作中,有时候会发生在我们还在本地分支开发工作时,上游仓库的 master 分支已经领先本地分支的情况。如果我们希望本地分支可以同步上游 master 分支的改动的话,可以通过以下操作:
重置本地/远程 master 分支
在我们的开发流程中,本地与远程仓库的 master 分支都是用来同步上游的 master 分支,并且作为 base 分支给我们的新建分支来使用。当本地或者远程仓库与上游仓库的 master 分支不同步时,或者是我们误提交了内容到本地、远程仓库的 master 分支时,我们可以通过重置本地与远程仓库的 master,来保持和上游仓库 master 分支的同步。
解决 merge 冲突
在某些场景下,你的本地改动可能会和上游 master 分支产生冲突。冲突会留下如下所示的冲突印记:
<<<<<<< HEAD 后是 HEAD 或基本分支的更改内容。
接下来是 =======,它将 HEAD 的更改与你的分支的更改分隔开。
最后跟着 >>>>>>> BRANCH-NAME。
遇到这种情况,则代表了你需要解决冲突。解决冲突时,你需要决定你要保持哪个分支的更改,或者进行全新的更改(可能包含两个分支的更改)。 最后,必须要删除冲突标记 <<<<<<<, =======, >>>>>>>。
解决冲突有 Pull Request 页面直接解决 以及 Git 命令行 两种方式。
Pull Request 页面解决冲突
在 PR 页面底部,如果下图所示的 Resolve conflicts 按钮是可以点击的:
则可以直接点击按钮解决冲突:
解决完单个文件里存在的冲突后,点击页面上方的 Mark as resolved:
如果多个文件存在冲突,全部解决完成后点击 Commit merge:
通过 Git 解决冲突
导航到有合并冲突的本地 chaos-mesh 仓库中:
使用 git status 查看受合并冲突影响的文件列表:
比如文件 styleguide.md 存在合并冲突,则预期输出类似于:
打开您首选的文本编辑器,导航到有合并冲突的文件。解决完所有冲突后,按正常 git add -> git commit -> git push 流程将更改 push 到远程。
Last updated