程序员的雷霆之怒
照片:Denny MülleronUnsplash
如果你是一名开发人员,你有可能听说过git、github或gitlab。Git只是一个版本管理工具,但有些人觉得这完全是个有趣的东西,并坚持练习以掌握它。我是版本控制系统的拥护者,它们让开发者的生活变得更加轻松。
早在我有任何版本控制的经验之前,我就认为它是一个花哨的技术,可能需要几个月的练习才能掌握。在开发中小规模的个人项目时,我从来没有使用过git。但当我开始从事专业工作并加入一些实际生活中的项目时,git似乎就不是一个我可以回避的选项了。
接下来的一周,我浅浅地学习了git,完成了提交、推送和拉动等常规任务。很快,我发现自己对一些概念有了更深的了解,比如暂存区、提交日志、.git目录结构和githooks。我没有比git更喜欢学习的东西了。
git init
要把一个项目从无版本控制的项目转换为能够进行版本跟踪的项目。使用上面的命令,在项目内初始化git。
git add -A
将新创建的文件、更新的文件和删除的文件添加到暂存区。这里需要注意的是,_git add ._不会把删除的文件添加到暂存区。最好使用 - A 选项。
git commit -m “message”
提交所有暂存的修改。一个方便的选项是-a,它告诉git在提交前对修改和删除的改动进行暂存,新添加的文件被忽略。git不允许有非空的信息,尽管可以用-allow-empty-message来跳过添加信息(不是一个好的做法)。
git merge my-branch
将my-branch的修改合并到当前签出的分支。
git pull origin my-branch
从远程分支_my-branch_拉出修改,并合并到当前分支。在团队中工作时,这是一个重要的命令。
git push origin my-branch
推送新的修改到远程。只有在远程和本地仓库分支同步的情况下才能进行。
常见错误及其解决方法
- 在错误的分支上做了修改
这是一个常见的错误,可以很快解决。在git终端显示当前分支的名称可以作为一个警告信号。按照这里提到的步骤来做吧。
如果改动没有被提交,那么 git stash是你的救星。这个命令将暂时存储你的修改,并将其保存在本地,这些修改可以随时随地被_弹出_ 。执行git stash将清除该分支的剩余修改。现在,用户可以签出要应用的分支,并执行 git stash pop
2.不完整的提交信息
如果你的最后一条提交信息有错别字或不完整,那也没什么好担心的。这也有一个命令。 git commit - -amend -m "new message"
Git amend 实际上并没有覆盖提交,而是创建了一个新的、带有不同信息的提交,这使得修正后的提交无法到达。
3.回滚一个提交
如果有一个提交,你只是想摆脱它并回滚到另一个甜蜜的提交,那么你可以使用,要谨慎使用。 git reset - -hard <commit-hash
使用硬选项的 Git 重置会清除工作树和索引,让你回到一个较早的提交。在这两个选项之间的所有提交都会丢失。
4.编辑一个提交
Git 重置还有一个有用的模式,叫做软模式。 git reset --soft .在这种模式下,Git可以带回一个提交的修改,这些修改是作为未缓存的修改存在的。现在我们可以编辑文件并重新提交修改。
总结
Git不断有新的更新推出,因此带来了更多的功能。比我在这篇博客中讨论的功能要多得多,我敦促你去看一下官方的git文档,并疯狂地探索git!
我的日常git工作最初发表在Medium的Dev Genius上,人们通过强调和回应这个故事来继续对话。