在服务器上维护代码时,经常会遇到一些让人措手不及的交互界面或重复操作。今天记录一下如何处理 Git 的合并提示(Vim 界面)以及如何彻底告别频繁输入密码。


1. 遇到 Merge branch 'master' of... 界面怎么办?

当你执行 git pull 时,如果远程仓库有多个新的提交且与本地没有直接冲突,Git 可能会自动生成一个合并提交,并弹出 Vim 编辑器 让你确认合并信息。

现象描述

屏幕显示类似 Merge branch 'master' of http://... 的文字,下方布满了 ~ 符号。

快速操作

如果你不需要修改默认的消息,只需三步即可退出:

  1. 按下键盘 Esc 键(退出编辑模式)。

  2. 输入 :wq(冒号、w、q,意为 write and quit)。

  3. 按下 Enter(回车)。

💡 小技巧: > 如果你想彻底避免这个界面,可以配置 Git 使用 Rebase 模式拉取代码: git config --global pull.rebase true 这样提交历史会保持一条直线,更加整洁。


2. 彻底解决 Git Pull 频繁要求输入用户名密码

如果你的仓库是用 http/https 协议克隆的,每次 pullpush 都要输入凭据。在 Linux 环境下,这非常影响效率。

方案一:使用凭据存储助手(推荐)

这是最简单且不改变现有协议的方法。执行以下命令:

Bash

git config --global credential.helper store
  • 执行效果:下次执行 pull 时手动输入最后一次密码,Git 会将其加密保存在 ~/.git-credentials 文件中。

  • 适用场景:个人开发机或公司内部受控服务器。

方案二:使用 SSH Key(专业方案)

如果你对安全性要求更高,建议切换到 SSH 协议。

  1. 生成密钥ssh-keygen -t rsa -C "your_email@example.com"

  2. 部署公钥:将 ~/.ssh/id_rsa.pub 的内容粘贴到 GitLab/GitHub 的 SSH Keys 设置中。

  3. 更换地址

    Bash

    git remote set-url origin git@你的服务器地址:项目路径.git
    

3. 手动解决“硬冲突” (Conflict)

如果退出 Vim 界面后提示 Automatic merge failed,说明有文件发生了代码冲突。

处理流程

  1. 查看状态git status 找红色显示的文件。

  2. 定位冲突:打开文件搜索 <<<<<<<

    • HEAD 之间是你的本地改动。

    • =======>>>>>>> 之间是远程服务器的改动。

  3. 手动取舍:删除冲突标记线,保留最终正确的代码。

  4. 提交完成

    Bash

    git add .
    git commit -m "fix: 解决合并冲突"
    

总结

在服务器上操作 Git,**“免密配置”是第一生产力,而“Vim 熟练度”**则是基本功。建议大家在配置新环境后,第一时间开启 credential.helper,能省去大量的重复工作。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐