一、初始化配置
1.查看Git版本
git -v
2.配置用户名和邮箱
git config --global user.name "your name"
git config --global user.email "youremail@email.com"
3.保存用户名和密码
git config --global credential.helper store
4.查看配置信息
git config --global --list
二、新建仓库
方式一:在本地直接创建
1.创建一个空目录
mkdir learn-git //创建目录
cd learn-git //进入learn-git目录
2.初始化learn-git目录
git init //在learn-git目录下会生成一个隐藏文件夹“.git”,则本地仓库创建成功
ls -a //可使用此命令来查看隐藏的文件(夹)
或者
在你选择的文件夹(learn-git)中使用此命令来创建一个本地仓库
git init my-repo //my-repo为仓库名,可自定义
这样你的仓库是my-repo这个文件夹,learn-git只是存放你的仓库的路径。
方式二:克隆一个已经存在的仓库
使用git clone
来克隆已经存在的仓库
git clone 要克隆的仓库地址,多为https或者ssh的地址
三、添加和提交文件
1.查看仓库状态
git status
2.添加到暂存区
git add 文件名
git add *.txt //添加当前文件夹下所有后缀为.txt的文件到暂存区
git add . //添加当前文件夹下所有文件到暂存区
3.提交
git commit //提交
git commit -m "编辑提交信息,即为自定义备注"
git commit -am "编辑提交信息,即为自定义备注" //同时完成添加到暂存区和提交的操作
4.查看仓库提交记录
git log
git log --oneline //简洁显示提交记录
四、回退版本
git reset 回退的目标版本ID
git reset --soft 回退的目标版本ID
git reset --hard 回退的目标版本ID
git reset --mixed 回退的目标版本ID // =git reset 回退的目标版本ID
使用以上命令的区别在于回退后,工作区和暂存区是否存在“回退版本”之后的修改/操作/文件
工作区 | 暂存区 | |
---|---|---|
git reset --soft | 存在 | 存在 |
git reset --hard | 不存在 | 不存在 |
git reset --mixed | 存在 | 不存在 |
五、查看差异
命令 | 对比空间 |
---|---|
git diff | 工作区 VS 暂存区 |
git diff HEAD | 工作区+暂存区 VS 本地仓库 |
git diff --cached / git diff --staged | 暂存区 VS 本地仓库 |
git diff 版本1_ID 版本2_ID | 版本1_ID VS 版本2_ID |
git diff HEAD~ HEAD | 上一个版本 VS 当前版本 |
git diff branch_name branch_name | 分支 VS 分支 |
六、删除文件
命令 | 操作 |
---|---|
git rm filename | 从工作区和暂存区同时删除文件 |
git rm --cached filename | 从暂存区中删除,工作区中保留 |
git rm -r * | 递归删除某目录下所有子目录和文件,删除后需要提交 |
七、.gitignore文件的匹配规则
- 空行或以#开头的行会被Git忽略
- 使用标准的glob模式匹配:* 通配任意个字符、? 匹配单个字符、[ ]匹配[ ]中单个字符([abc]表示a/b/c)
- ** 匹配任意的中间目录
- 中括号中可使用短线链接:[0-9] 表示任意一位数字,[a-z] 表示任意一位小写字母
- !表示取反
八、关联本地仓库和远程仓库
1.添加远程仓库
git remote add <远程仓库别名> <远程仓库地址>
2.查看远程仓库
git remote -v
3.将本地仓库推送到远程仓库
git push -u origin main:main //将本地仓库的main分支推送到别名为origin的远程仓库的main分支
4.拉取远程仓库到本地仓库
git pull origin main:main //拉取别名为origin的远程仓库的main分支到当前所在的本地仓库的main分支
参数缺省
git pull //默认拉取远程别名为origin的仓库的main分支到当前所在的本地仓库的main分支
5.配置SSH密钥
首次配置或打算覆盖以前的配置
cd //进入根目录
cd ./ssh //进入ssh文件夹
ssh-keygen -t rsa -b 4096 //生成密钥
//接下来会让你输入密钥文件名,不输入直接回车
//接下来让你为密钥设置密码,不输入直接回车
ls -ltr //查看当前文件夹下的文件,会有一个rsa.pub文件
vim rsa.pub //打开该文件,复制里面的内容,然后在远程仓库的SSH配置中添加该密钥即可
非首次配置或不想覆盖以前的配置
cd //进入根目录
cd ./ssh //进入ssh文件夹
ssh-keygen -t rsa -b 4096 //生成密钥
//接下来会让你输入密钥文件名,例如“test”
//接下来让你为密钥设置密码,不输入直接回车
ls -ltr //查看当前文件夹下的文件,会有一个test.pub文件
vim rsa.pub //打开该文件,复制里面的内容,然后在远程仓库的SSH配置中添加该密钥
touch config //创建一个config文件,如果当前文件夹下已存在则跳过此命令
vim config //向config中添加以下命令,以test、github.com为例
向config中添加的内容:
Host github.com
HostnName github.com
PreferredAuthentications publicKey
IdentityFile ~/.ssh/test
6.关闭git的SSL证书验证
当你克隆一个仓库出现下面的报错时:
fatal: Could not read from remote reposity.
Please make sure you have the correct access rights
and the repository exists.
请尝试运行下面的代码:
git config --global http.sslverify false
九、分支的操作
1.查看分支
git branch
2.创建分支
git branch branch_name
3.切换分支
git checkout branch_name
git switch branch_name //推荐使用
4.合并分支
git merge branch_name
5.删除分支
git branch -d branch_name //删除已合并的分支
git branch -D branch_name //删除未合并的分支
6.解决合并冲突
解决方法
- 手工修改冲突文件,合并冲突内容
- 添加暂存区
git add file
- 提交修改
git commit -m "your text"
终止合并
git merge --abort
十、标签操作
1.查看标签
(1)列出所有标签
git tag
git log --oneline
(2)列出匹配标签
git tag -l 'v1*' //列出标签名称中包含‘v1’的所有标签
(3)显示特定标签的细节
git show <tag_name>
2.创建标签
(1)轻量标签
git tag <tag_name>
(2)注释标签
git tag -a <tag_name> -m <note information>
(3)后期打标签
git tag -a <tag_name> -m <note information> <commitID>
3.删除标签
(1)删除本地仓库标签
git tag -d <tag_name>
(2)删除远程仓库标签
git push origin -d tag <tag1_name> <tag2_name> //origin is your repo alias
4.推送标签
(1)一个或者部分标签
git push origin <tag1_name> <tag2_name> ... //origin is your repo alias
(2)推送全部标签
git push origin --tags //origin is your repo alias