Linux 服务器 Git 实战:从处理冲突到实现免密 Pull
在服务器上维护代码时,经常会遇到一些让人措手不及的交互界面或重复操作。今天记录一下如何处理 Git 的合并提示(Vim 界面)以及如何彻底告别频繁输入密码。
1. 遇到 Merge branch 'master' of... 界面怎么办?
当你执行 git pull 时,如果远程仓库有多个新的提交且与本地没有直接冲突,Git 可能会自动生成一个合并提交,并弹出 Vim 编辑器 让你确认合并信息。
现象描述
屏幕显示类似 Merge branch 'master' of http://... 的文字,下方布满了 ~ 符号。
快速操作
如果你不需要修改默认的消息,只需三步即可退出:
-
按下键盘
Esc键(退出编辑模式)。 -
输入
:wq(冒号、w、q,意为 write and quit)。 -
按下
Enter(回车)。
💡 小技巧: > 如果你想彻底避免这个界面,可以配置 Git 使用 Rebase 模式拉取代码:
git config --global pull.rebase true这样提交历史会保持一条直线,更加整洁。
2. 彻底解决 Git Pull 频繁要求输入用户名密码
如果你的仓库是用 http/https 协议克隆的,每次 pull 或 push 都要输入凭据。在 Linux 环境下,这非常影响效率。
方案一:使用凭据存储助手(推荐)
这是最简单且不改变现有协议的方法。执行以下命令:
Bash
git config --global credential.helper store
-
执行效果:下次执行
pull时手动输入最后一次密码,Git 会将其加密保存在~/.git-credentials文件中。 -
适用场景:个人开发机或公司内部受控服务器。
方案二:使用 SSH Key(专业方案)
如果你对安全性要求更高,建议切换到 SSH 协议。
-
生成密钥:
ssh-keygen -t rsa -C "your_email@example.com"。 -
部署公钥:将
~/.ssh/id_rsa.pub的内容粘贴到 GitLab/GitHub 的 SSH Keys 设置中。 -
更换地址:
Bashgit remote set-url origin git@你的服务器地址:项目路径.git
3. 手动解决“硬冲突” (Conflict)
如果退出 Vim 界面后提示 Automatic merge failed,说明有文件发生了代码冲突。
处理流程
-
查看状态:
git status找红色显示的文件。 -
定位冲突:打开文件搜索
<<<<<<<。-
HEAD之间是你的本地改动。 -
=======到>>>>>>>之间是远程服务器的改动。
-
-
手动取舍:删除冲突标记线,保留最终正确的代码。
-
提交完成:
Bashgit add . git commit -m "fix: 解决合并冲突"
总结
在服务器上操作 Git,**“免密配置”是第一生产力,而“Vim 熟练度”**则是基本功。建议大家在配置新环境后,第一时间开启 credential.helper,能省去大量的重复工作。
更多推荐



所有评论(0)