最常见的Git错误都有哪些,如何解决它们?
拼写错误的最后提交消息
git commit --amend
该命令将打开您的编辑器,并允许您更改最后一次提交消息。因为可能没人会注意到你写的 “Initial commment” 有三个 m。
拼写错误的分支名
假设已经是下午三点了,但是你还没有吃午饭。饥肠辘辘的你可能直接就用 feature-brunch 作为你的分支名了,哇塞,好美味啊。可是很明显你写错了,应该是 feature-branch 。所以你可以使用 mv
你可以使用 mv 命令类似重命名文件的方式重命名此分支:将其移动到具有正确名称的新位置。
git branch -m feature-brunch feature-branch
git push origin --delete feature-brunch
git push origin feature-branch
你可能正在开发一项新功能,由于太仓促,你忘记为它打开一个新的分支。这时候已经提交了大量文件,而且这些提交都位于主分支上。
现在我们需要使用以下三个命令将所有这些更改回滚到新分支:
git branch feature-branch
git reset HEAD~ --hard
git checkout feature-branch
这将创建一个新分支,然后将主分支回滚到您进行更改之前的位置,然后最终检出您之前所有更改完整的新分支。
忘了将文件添加到最后一次提交
另一个常见的 Git 陷阱是过早提交。你可能错过了一个文件,忘了保存它,或者需要对最后一次提交做一个小改动。这时候 --amend 再次成为你的朋友。
git add missed-file.txt
git commit --amend
此时,您可以修改提交消息,也可以只保存它以使其保持不变。
将错误的文件添加到仓库
但是如果你做的恰恰相反呢?如果您添加了一个不想提交的文件,该怎么办?一个流氓ENV文件,一个构建目录,一个你不小心保存到错误文件夹的狗的图片?这一切都是可以解决的。
git reset /assets/img/misty-and-pepper.jpg
git reset --soft HEAD~1
git reset /assets/img/misty-and-pepper.jpg
rm /assets/img/misty-and-pepper.jpg
git commit
上述命令将撤消提交,删除图像,然后在其位置添加新提交。
天啊,我又干蠢事了!
这个命令适用于一切都出错的地方。当您从Stack Overflow中复制粘贴太多解决方案时,您的repo处于比启动时更糟糕的状态。我们都去过那儿。
git reflog 显示了您已完成的所有事情的列表。然后它允许你使用Git的神奇时间旅行技能回到过去的任何一点。但是你不应该轻易使用。
git reflog
3ff8691 (HEAD -> feature-branch) HEAD@{0}: Branch: renamed refs/heads/feature-brunch to refs/heads/feature-branch
3ff8691 (HEAD -> feature-branch) HEAD@{2}: checkout: moving from master to feature-brunch
2b7e508 (master) HEAD@{3}: reset: moving to HEAD~
3ff8691 (HEAD -> feature-branch) HEAD@{4}: commit: Adds the client logo
2b7e508 (master) HEAD@{5}: reset: moving to HEAD~1
37a632d HEAD@{6}: commit: Adds the client logo to the project
2b7e508 (master) HEAD@{7}: reset: moving to HEAD
2b7e508 (master) HEAD@{8}: commit (amend): Added contributing info to the site
dfa27a2 HEAD@{9}: reset: moving to HEAD
dfa27a2 HEAD@{10}: commit (amend): Added contributing info to the site
700d0b5 HEAD@{11}: commit: Addded contributing info to the site
efba795 HEAD@{12}: commit (initial): Initial commit
git reset HEAD@{index}
你是否有自己的一些 Git 技巧吗?欢迎分享!
本文翻译自 Medium
开源中国征稿啦!
开源中国 www.oschina.net 是目前备受关注、具有强大影响力的开源技术社区,拥有超过 400 万的开源技术精英。我们传播开源的理念,推广开源项目,为 IT 开发者提供一个发现、使用、并交流开源技术的平台。
现在我们开始对外征稿啦!如果你有优秀的技术文章想要分享,热点的行业资讯需要报道等等,欢迎联系开源中国进行投稿。投稿详情及联系方式请参见:我要投稿
- git常用指令及常见错误解决方法
- 6种常见的Git错误以及解决的办法
- 开发中常见git操作以及错误解决办法
- 解决Git错误提示:fatal: remote origin already exists.及Git常见错误处理!
- cocos2d-x如何添加box2d物理引擎即常见错误解决
- Git遇到错误时如何解决的一些坑
- 如何用 Android Studio 导入开源项目以及常见错误的解决办法
- 如何解决Windows中git “filename too long”错误?
- Git常见错误与操作:error: src refspec master does not match any解决办法
- MySQL常见错误有哪些_MySQL常见错误的快速解决方法
- MFC编程中常见错误及如何解决
- 如何用 Android Studio 导入开源项目以及常见错误的解决办法
- Git 项目上传至github入门实战并解决常见错误
- 【git常见问题】 fatal: Unable to create index.lock File exists 错误的解决办法
- Git 使用教程 之 Git常见错误及解决方法整理
- 如何解决nagios安装及运行在的常见错误?(转)
- Workflow常见错误如何解决
- 15个常见的Android问题和如何解决它们
- git的一些常见错误与解决方法
- 10个常见的设计错误......以及如何避免它们