1、配置用户名和邮件地址
git config --global user.name "用户名111"
git config --global user.email 11111@gmail.com
其中--global表示全家配置,对所以仓库有效 --system表示系统配置,对所有用户生效
省略(Local)本地配置,只对本地仓库有效
其中用户名的引号可以省略,因为字符串里面没有空格,如果有空格就要加上双引号
git config --global credential.helper store # 配置客户端长期储存各种密码
git config --global list # 查看全局配置
2、创建仓库
①:在文件夹下git init,在本地创建
②:从远程服务器上克隆一个已经存在的
ls -a 可以查看所有的文件,包括隐藏的文件
3、git status查看处于哪个分支,有哪些文件以及这些文件当前处于什么样的状态,git ls-files查看和管理Git仓库中已经被跟踪的文件
4、git add 文件名.后缀 把文件添加到暂存区,也可以接受文件夹、通配符作为参数,git add . 就是把当前文件夹所有的文件都提交
5、git commit -m "填写提交时的信息",注意只会提交暂存区的文件,不会提交工作区的,加上-a会完成添加暂存和提交两个动作
6、git log来查看提交记录 可以使用--oneline参数来查看简洁的提交记录
7、版本回退
git reset --soft 回退到某一个版本,并且保留工作区和暂存区的所有内容,当觉得多个版本的提交需要合并时,可以使用soft
git reset --hard 回退到某一个版本,并且丢弃工作区和暂存区的所有内容
git reset --mixed 回退到某一个版本,保留工作区,丢弃暂存区的所有内容,mixed是默认参数
如果误操作了,使用git reflog 可以查看操作的历史记录,找到误操作之前的版本号,使用“get reset 版本号”回退即可
8、git diff 用来查看工作区、暂存区的差异
git diff HEAD 查看工作区和本地仓库之间的差异、
git diff --cached比较暂存区和版本库之间的差异
git diff 版本1 版本2 查看不同版本的差异
还可以使用HEAD来表示当前分支的最新提交
git HEAD~ HEAD 或者git HEAD^ HEAD比较当前版本和上一个版本之间的差异
git HEAD^数字a HEAD 表示HEAD之前的a个版本
还可以在后面查看文件名,就只会显示改文件的差异内容
git diff <branch1> <branch2> # 比较当前分支与另一个分支的差异
git diff <branch> origin/<branch> # 比较当前分支与远程分支(例如 origin/main)
9、删除文件
可以先删除工作区的文件,再添加到暂存区rm file, git add file
git rm --cached 文件名.后缀 把文件从暂存区移除
也可以使用git rm 文件名同时删除工作区和暂存区的内容,记得要提交,不然版本库中还存在
10、.gitignore 应该忽略哪些文件?
①系统或者软件自动生成的文件
②编译产生的中间文件和结果文件
③运行时生成日志文件、缓存文件、临时文件
④设计敏感信息的文件
.gitignore 生效有一个前提,就是这个文件不能被提交到了版本库中
使用标准的Blob模式匹配, *通配任意个字符, ?匹配单个字符
[]表示匹配列表中的任意单个字符 比如[abc]表示要么匹配一个a,要么匹配一个b,要么匹配一个c
文件夹名/
github官网上提供了一些模板:github.com/github/gitignore/blob/main
11、配置SSH秘钥
在用户根目录下 ssh-keygen -t rsa -b 4096
12、关联本地仓库和远程仓库
添加远程仓库:
git remote add <远程仓库别名> <远程仓库地址>
git push -u 远程仓库名 分支名
查看远程仓库:
git remove -v
拉取内容:
git pull <远程仓库民>《远程分支名》:《本地分支名》 本地和远程相同的话可以省略冒号后面部分
13、git branch 新分支名 创建新分支 不过不会切换分支
git branch 查看分支列表和当前分支
git switch dev 切换分支,dev是分支的名字
git merge dev # 把dev分支合并到当前分支中
git branch -d dev 删除已经完成合并的dev分支,如果没有被合并,想要删除的话,把d改成D
14、对于很长的命令,可以使用alias来创建别名
15、rebase和merge都是合并,merge会保留原分支,rebase形成一个线性的结构了
图片来自B站:【GeekHour】一小时Git教程