初始化
在使用git前至少要配置使用者姓名和邮箱(邮箱不一定要真实存在)
git config --global user.name "chen"
# 配置使用者姓名
git config --global user.email "2720183025@qq.com"
# 配置使用者邮箱
可以通过 git config --list 命令查看所有配置
忽略列表
如果在项目中有些文件不需要被git管理则可以将这些文件添加至忽略列表
touch .gitignore # 创建忽略列表文件
例如需要将所有以.a结尾的文件忽略掉,则添加
vim .gitignore # 写入需要忽略文件名
*.a # 表示忽略所有以.a结尾的文件
本地仓库
若项目需要交由git管理,则需要在项目文件夹将文件夹初始化
git init # 将当前目录配置成git仓库
在文件夹中有隐藏文件夹.git出现就配置成功
本地操作指令
状态
git status # 查看修改状态
工作区->暂存区
git add . # 添加文件到暂存区(.表示所有文件)
暂存区→版本库
git commit -m "v1.0" # 将暂存区文件添加到版本库里,-m参数设置注释
日志
git log # 查看提交日志
commit 7cb8112eba536368f7c9f42fb532a8240f8be864 (HEAD -> master) # 提交ID
Author: chen <2720183025@qq.com> # 提交者信息
Date: Mon Feb 26 22:46:33 2024 +0800
v1.0 # 提交注释
git log 的参数配置:
# git log 参数
--all # 显示所有分支
--abbrev-commit # 简短显示commit ID
--pretty=oneline # 以一行的形式输出(只保留ID和注释)
--graph # 以图形化显示
版本回退
git log --abbrev-commit # 查看需要回退版本的ID
commit e906000 (HEAD -> master)
Author: chen <2720183025@qq.com>
Date: Mon Feb 26 22:57:40 2024 +0800
v2.0
commit 7cb8112 # 回退到v1.0版本
Author: chen <2720183025@qq.com>
Date: Mon Feb 26 22:46:33 2024 +0800
v1.0
git reset --soft 7cb8112 # 回退版本
# git reset 参数
--soft # 回退指定版本,删除log日志
--hard # 撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,删除log日志中
分支
查看分支
git branch # 查看分支
* master # 有一个主分支
创建分支
git branch dev1 # 创建一个名为dev1的分支
切换分支
git checkout dev1 # 切换分支
Switched to branch 'dev1'
# git checkout 参数
-b # 创建并切换到分支
合并分支
git merge dev1 # 将dev1分支合并到当前分支(当前为master)
Already up to date.
删除分支
git branch -d dev1 # 删除dev1分支
# 参数
-d # 删除分支
-D # 强制删除分支
远程仓库
使用的是gitee(码云)仓库
SSH公私钥认证
ssh-keygen -t rsa # 生成公私钥
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/CHEN/.ssh/id_rsa): # 回车
Created directory '/c/Users/CHEN/.ssh'.
Enter passphrase (empty for no passphrase): #回车
Enter same passphrase again: #回车
Your identification has been saved in /c/Users/CHEN/.ssh/id_rsa
Your public key has been saved in /c/Users/CHEN/.ssh/id_rsa.pub
The key fingerprint is: #回车
SHA256:tPq/HJr/Xvi1oPH5+GOshmfmK4quH7+POvoXET/QSFo CHEN@CHEN
The key's randomart image is:
+---[RSA 3072]----+
| .Eo |
| o+ . |
| .. + |
| . o o |
| S . . |
| . . . |
| .. o.o.o .|
| o+=.++B+=.|
| o**BBO*XBB+.|
+----[SHA256]-----+
cat ~/.ssh/id_rsa.pub # 查看公钥
将出现的公钥复制到远程仓库SSH公钥设置中!!!
ssh -T git@gitee.com # 测试
第一次连接时有一个问题回答yes即可 出现 successfully 则测试成功
查看远程仓库
git remote # 查看远程仓库
fatal: not a git repository (or any of the parent directories): .git # 无
添加远程仓库
git remote add 仓库名 仓库地址 # 添加到远程仓库
上传
git push 远程仓库名 远程仓库分支名 # 上传至远程仓库
# git push 命令
git push [-f] [--set-upstream] [远程仓库名] [本地分支名][:远程仓库分支名]
-f # 强制覆盖(解决冲突)
--set-upstream # 设置绑定关系 git push --set-upstram [远程仓库名][远程仓库分支]
克隆
项目名称即克隆下来的文件夹名
git clone 仓库地址 项目名 # 克隆 +远程仓库地址
抓取
git fetch 远程仓库名 远程仓库分支名 # 抓取分支
抓取完后要合并分支才可以看得见
git merge 远程仓库分支 # 合并分支
拉取
等同于 抓取+合并
git pull 远程仓库名 远程仓库分支名 # 拉取分支