1 Git
初始化
git configh --global user.name "username"
git configh --global user.email user@email.com
git configh --global credential.helper store
创建仓库
git init <project-name>
git clone <url>
ssh-keygen -t rsa -b 4096
复制id_rsa.pub的内容,github右上角个人头像→settings→SSH and GPG keys→New SSH key→key编辑框→Add SSH key
git push <remote><branch>
git pull <remote>
git pull <远程仓库名><远程分支名>:<本地分支名>
git remote add <远程仓库名><远程仓库地址>
git push -u <远程仓库名><分支名>
git remote -V
git pull <远程仓库名>
四个区域
工作区
暂存区
本地仓库
远程仓库
三种状态
已修改(modified),修改了文件,但没保存到暂存区
已暂存(staged),把修改后的文件放到暂存区
已提交(commited),把暂存区的文件提交到本地仓库
两个平台
可以在自己的服务器部署一个gitlab代码托管服务
GUI
基本概念
main,默认主分支
origin,默认远程仓库
HEAD,指向当前分支的指针
HEAD~,上一个版本
HEAD~4,上四个版本
特殊文件
.git,git仓库的元数据和对象数据库
.gitignore,忽略文件,不需要提交到仓库的文件
匹配规则:从上到下逐行匹配,每一行表示一个忽略模式
git-scm.com/docs/gitignore
1.空行或者以#开头的行会被git忽略,一般空行用于可读性的分隔,#一般用作注释
2.使用标准的Blob模式匹配,例如
*通配任意字符
?匹配单个字符
[]表示匹配列表中的单个字符,比如[abc]表示a/b/c
3.**表示匹配任意的中间目录
4.中括号可以使用短中线连接,比如
[0-9]表示任一数字,[a-z]表示任一小写字母
5.!表示取反
如doc*.pdf,表示忽略doc目录及其所有子目录下的.pdf文件
.gitattributes,指定文件的属性,比如换行符
.gitkeep,使空目录被提交到仓库
添加和提交
git add <file>
git add .
git commit -m "message"
git commit -am "message"
分支
git branch
git branch <branch-name>
git checkout <branch-name>
git checkout -b <branch-name>
git switch <分支名>
git branch -d <branch-name>
git branch -D <branch-name>
合并分支
git merge --no-ff -m "message" <branch-name>
git merge --squash <branch-name>
rebase不会产生新的提交,而是把当前分支的每一个提交"复制"到目标分支上,然后再把当前分支指向目标分支,而merge会产生一个新的提交,这个提交有两个分支的所有修改。
解决合并冲突
解决办法:
1.手工修改冲突文件,合并冲突内容
2.添加暂存区,git add file
3.提交修改,git commit -m "message"
中止合并:当不想继续执行合并操作时可以使用下面的命令来终止合并过程:
git merge --abort
git reset --hard
git clean -df
git pull
ctrl+x
git pull
Rebase
git log --oneline --graph --decorate --all
alias graph = "git log --oneline --graph --decorate --all"
graph
git checkout <dev>
git rebase <main>
撤销
git mv <file> <new-file>
git rm <file>
git rm -cached <file>
git checkout <file> <commit-id>
git revert <commit-id>
git reset --mixed <commit-id>
git restore --staged <file>
查看
git status
git status -s
git log --oneline
git diff
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具