git基本操作
初始化git环境
配置用户
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
注:--global ,对当前用户起作用,如果不加,只针对当前仓库
将当前目录变为git可管理的仓库
git init
将文件提交到版本库
将文件添加到暂存区
git add <file_name>
注:git add . 可以将所有修改文件添加到暂存区,但要注意不需要提交的文件
将暂存区的文件提交到当前分支
gi commit -m"提交说明"
时光穿梭机
查看工作区的状态
git status
注:会有一些简单的状态提示和命令提示
查看修改内容
git diff
查看工作区和版本库文件的区别
git diff HEAD <file_name>
查看提交历史
git log
gitk --all (图形提交历史界面,好像只有window能用)
查看命令历史
git reflog
丢弃工作区的修改
git checkout <file_name> (老版本git)
git restore <file_name> (新版本git)
注:. 语法可以丢弃所有
丢弃暂存区的修改
git reset HEAD <file_name> (老版本git)
git restore --staged <file_name> (新版本git)
注:. 语法丢弃所有
回退到指定的提交版本
git reset --hard <comit_id/HEAD>
注:HEAD 当前版本,HEAD^ 上一版本
远程仓库
配置SSH
- 用户主目录下查找.ssh目录,看是否有id_rsa(私钥)和id_rsa.pub(公钥)两个文件
- 创建.ssh文件:ssh-keygen -t rsa -C "email@xx.com"
- 登录仓库管理,将公钥内容粘贴在ssh配置里
关联远程仓库
git remote add <store_name> <branch_name>
推送最新修改到远程仓库
git push <store_name> <branch_name>
-u (第一次推送将本地分支和远程分支进行关联)
注:如果本地分支已经和远程分支关联,可以省略仓库名和分支名
克隆远程库的数据到本地
git clone <仓库地址>
分支管理
分支基础操作
查看分支
git branch -a
创建分支
git branch <branch_name>
切换分支
git checkout <branch_name>
创建+切换分支
git checkout -b <branch_name>
创建+切换+关联远程分支
git checkout -b <branch_name> <store_name>/<store_name>
合并某分支到当前分支
git merge <branch_name>
--no-ff (采用普通模式合并,会产生一次commit,注意使用-m描述)
将其它分支上的某次提交合并到当前分支
git cherry-pick <commit_id>
删除分支
git branch -d <branch_name>
-D (可以强行删除未被合并过的分支)
查看分支合并图
git log --graph
暂存区操作
将当前修改暂存
git stash
查看存储区内容
git stash list
恢复存储区内容到工作区
git stash apply
删除存储区内容
git stash drop
恢复存储区内容到工作区并删除存储区内容
git stash pop
远程分支
查看远程仓库的信息
git remote
-v (可以显示详细信息)
拉取远程分支代码合并到当前分支
git pull
在本地创建和远程分支对应的分支
git checkout -b <branch_name> <store_name>/<branch_name>
建立本地分支和远程分支的关联
git branch --set-upstream <branch_name> <store_name>/<branch_name>
合并分叉提交
git rebase
注:在本地尝试push发现远程有新的提交,通过pull命令后提交历史产生分叉,将本地push的分叉提交历史整理成直线;
有冲突的情况不适用,无冲突的情况建议使用,减少分叉可以更好的查看分支提交记录
标签管理
新建标签
git tag <tag_name>
注:默认指向HEAD,可以指定commit_id
添加标签描述信息
git tag -a <tag_name> -m""
查看所有标签
git tag
查看标签信息
git show <tag_name>
删除标签
git tag -d <tag_name>
推送标签到远程仓库
git push <store_name> <tag_name>
git push <store_name> --tags (一次推送全部未推送标签)
删除已推送的标签
先删除本地标签
git push <store_name> :refs/tags/<tag_name>
注:本文档只是记录git一些基本命令,如果想了解git使用原理,建议百度廖雪峰的git教程,讲的很不错
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 百万级群聊的设计实践
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期