git常用语法
创建分支
- git branch new-branch
创建分支的同时切换到新建的分支
- git checkout -b new-branch
在其他分支的基础上新建分支,且不带之前分支的commit信息
- git checkout --orphan new-branch
第一次将本地分支(dev)推送到远程分支(dev)
- git push origin dev:dev
提交本地分支(dev)到远程分支(origin/dev)
- git push origin dev
将本地分支( dev )合并到远程分支(origin/master)
-
git checkout master;
-
git merge dev
-
git push origin master
Tip: git merge --squash dev --squash这个参数的作用是,可以将dev之前commit的记录整合到一个,这样合并的log就会只有最后一个commit的信息
将本地某次提交合并到远程分支(origin/master)
-
git log 查看某次提交的commit-id
-
git checkout master
-
git cherry-pick commit-id
-
git commit -m "add msg"
-
git push origin master
-
git pull (相当于git fetch+git merge)
git pull --rebase (相当于git fetch+git rebase)
- --rebase参数可以让多人开发提交代码的commit只有一条线
git fetch 将远程分支最新修改拉取下来,更安全
删除本地分支
- git branch -d branch-name
- git branch -D branch-name (强行删除本地分支)
删除远程分支
- git push origin --delete branch-name
合并多个commit
举例:合并最后2次提交的commit:
-
先回退到最后2次提交的前一次提交
git rebase -i HEAD~3 或 git rebase -i commit-id (commit-id:倒数第3次commit的commit-id)
-
选择第3个commit-id中的一个作为最终需要保留的commit-id
并将剩下两个提交的pick---更改为squash(简写s)也可以,保存退出(:wq)如果需要删除某次提交,直接将pick--更改为 drop即可
需要提交到远程代码的话,还需要执行:git push origin master -f -
进入到提交msg界面,看是否需要更改提交的msg,如果没有直接保存退出
如果有,按i进入编辑模式,修改相应的msg,按esc退出编辑模式,再保存退出。
注意:如果整个操作有出现错误,可以使用: git rebase --abort(放弃本次rebase操作)
同理cherry-pick出错,可使用:git cherry-pick --abort
当前所在分支有更改,未提交到缓存区,但是需要切换到其它分支:
- git stash [save message] 备份当前的工作区的内容 [当前内容的备注信息]
切换在缓存区中最新的一次记录
-
git stash pop 弹出最后一次stash的提交,代码恢复到该次提交的状态
-
git reset --soft commit-id (软重置,新提交的文件会被保存)
-
git reset --hard commint-id (硬重置,新修改的数据都会被清掉,包括stash暂存区的)
将不小心add到暂存区的文件移除
- git rm -r --cached "filename" 如果提示-f则:git rm -rf --cached filename
===================================================================
使用git时,注意避坑:
- git更新图片时,要注意图片重命名,不然会存在缓存;
- git是不区分提交文件大小写的,但是有的时候自己的项目是区分大小写的。如果发现自己文件大小写有问题,要注意先删除文件,重新提交大小写正确的文件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】