Git常用操作命令汇总
哎呀,又有人来问我Git怎么用。
行吧行吧,媚娘今天心情好,赏你一篇。从头给你捋一遍那些蠢到让我翻白眼的基本操作,看完你还学不会,媚娘可就不伺候了。
初始化?你在逗我?
有人问媚娘,“媚娘,新建个项目咋整啊?”
我:???
你是在本地新建个文件夹然后问我要不要帮你写代码吗?
新建文件夹不需要Git,但凡你在命令行敲过ls都该知道这常识。Git是用来管代码版本的,不是给你当文件夹用的。所以先干活——git init——这才是正经第一步。敲完这行,你的文件夹才正式变成一个Git仓库,别搞反了顺序。
至于那些复制别人代码的,git clone 你要克隆的地址,地址去GitHub复制,别手动敲,敲错一个字符媚娘不给你背锅。
暂存?你以为Git会读心术?
好,代码写完了,该提交了。有人就傻乎乎敲git commit -m "修bug"然后问我为什么文件没上去。
你动动你的小脑袋瓜,commit之前干嘛?add啊!
git add .把你所有改动的文件扔到暂存区,然后git commit -m "这里写清楚你干了什么"。有些人commit信息写“更新”,更新了啥?你家项目只有你在用吗?三个月后你自己都看不懂。
还有个蠢操作——git add *——这是你自己手动过滤后的全量提交,媚娘建议新手别用,省得把你debug的临时文件也一并交上去,到时候丢人别来找我。
分支?这玩意儿才是真香!
媚娘最烦那种main分支上直接写代码的勇士。
git branch看一下你现在有几条分支,git checkout -b 新分支名创建并切换到新分支,git switch -c 新分支名也是同样的效果——用后者,媚娘更喜欢,看起来更清爽。
为什么要分支?因为你在feature分支上吭哧吭哧写两周,结果把整个项目搞崩了,main还是干净的,直接git merge feature把正确代码合并回来就行。不用分支的程序员,和裸奔没区别——媚娘说的是代码审查层面,别想歪了。
合并冲突?先别慌,<<<<<<< HEAD到>>>>>>>之间那坨东西就是你需要手动处理的冲突。保留哪部分你决定,别让Git替你选——它没那智商。
远程?这步卡住一堆人。
本地写好了,想推上去:git remote -v先看看有没有绑定远程仓库。没有的话git remote add origin 你仓库地址,然后git push -u origin main——第一次加-u,以后直接git push就行。
有人问媚娘:“为什么push失败?”
你先把远程仓库拉下来再推啊——git pull origin main --rebase,这条命令解决大部分推送被拒的问题。远程有更新你不知道,还硬推,你是觉得Git是傻子吗?
pull的时候遇到冲突先stash:git stash暂存你的本地修改,pull完再git stash pop把你的改动放回来。手速快的话可以合并成一条命令git stash && git pull && git stash pop,但媚娘警告你,这招在新手手里容易翻车,翻车了别哭。
撤销?你想好后果再说。
改乱了想回到上一步?
git status先看清楚自己改了什么。然后几种撤销方式:
改过的文件没add——git checkout -- 文件名,回到最近一次commit的状态。
add了但没commit——git reset HEAD 文件名,把它从暂存区撤出来。
commit了想反悔——git reset --soft HEAD~1(保留改动在暂存区)或git reset --hard HEAD~1(直接清空一切)。hard那个狠,慎用,丢了代码别来找媚娘哭。
日志?你得学会看这玩意儿。
git log --oneline --graph——这才是正经看提交记录的姿势,一行一条,图形化显示分支走向。那些git log出来一大坨的,你看着不头疼吗?
查某个人干了什么:git log --author="名字"。查某个文件的历史:git log -- 路径。
收尾。
行了,够你折腾的了。媚娘再强调一遍:commit信息写清楚、分支用起来、pull在push之前。这些烂大街的问题媚娘讲过八百遍了,每次还有人踩坑。
别问媚娘为什么懂这么多——踩过来的。代码这东西,懒不得。好了,去练吧,媚娘要去泡茶了。
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时






