Git 记录
设置查看:
git config --list # 查看所有
git config user.name # 查看用户名
git config --local --list # 查看仓库级别配置
git config --global --list # 查看用户级别配置
用户名和邮箱:
(当一个仓库以下都被设置时,优先级从上到下)
1. --local
作用范围:当前 Git 仓库
保存位置:Git 仓库的 .git/config
git config --local user.name "Your Name"
git config --local user.email "youremail@example.com"
2. --global
作用范围:当前用户
保存位置:该用户主目录下的 .gitconfig
git config --global user.name "Your Name"
git config --global user.email "youremail@example.com"
3. --system
作用范围:系统
保存位置:/etc/gitconfig
注意:对所有用户和所有 Git 仓库都有效,一般需要sudo权限
sudo git config --system core.editor "nano"
4. 不带参数
读取/写入顺序:仓库级别 > 用户级别 > 系统级别
git config user.name "Your Name"
git config user.email "your.email@example.com"
查看项目状态:
git status
查看链接到远程哪个仓库:
git remote -v
add 本地暂存区:
git add <filename1> <filename2> # 提交某个文件
git add -A # 提交全部
commit:
git commit -m "提交说明" # 本地
add、commit 撤销:
git reset --soft HEAD^ # commit 撤销
git reset HEAD # add 撤销
pull、push:
git pull origin <branchname>
git pull <url> <branchname>
git push origin <branchname> # 把已经commit的内容传到远程服务器
git push <url> <branchname>
# url 查看
git remote -v
# 注意:git pull 但是本地不变化,是因为本地文件有未提交的修改,Git默认不会覆盖本地未提交的修改
Tag:
在本地,基于刚刚推送的新代码所在的提交(也就是本地 main 分支的最新提交),为新代码创建一个 tag
# 查看 Tag 本地
git tag
git tag -l
# 查看 Tag 远程
git ls-remote --tags origin
# 打 Tag
git push origin main
git tag <新代码标签名>
git push origin <新代码标签名>
# 删除 Tag
git tag -d <tag-name> # 删除本地
git push origin --delete <tag-name> # 删除远程
Git初始化\本地建立一个新的分支,提交到远程(远程没有):
# 新目录下
git init
git remote add origin xxxx.git
git remote -v
git checkout -b v2.1
git add .
git commit -m "在 v2.1 分支初始化内容"
git push -u origin v2.1
git branch -a # 查看本地分支和远程分支
分支:
git branch # 查看本地分支
git branch -r # 查看远程分支
git branch -vv # 查看分支合并状态
git checkout <branch_name> # 切换到存在分支
git checkout -b <new_branch_name> # 创建并切换到新的分支
git fetch origin # 切换到远程分支1:先拉取
git checkout origin/<branch_name> # 切换到远程分支2:后切换
删除:
# 删除远程文件
# 从Git的索引(暂存区)中删除文件,但不会删除本地文件
git rm --cached <filename>
git commit -m "删除远程仓库中的文件 <filename>,但保留本地文件"
git push origin main
私人仓库连接
推荐 SSH,这样每次 push 都不需要再次输入账号+密码
clone 仓库要用 SSH 方式
# 本地生成 SSH key(每一个主机对应一个 SSH key)
# 看是否存在 id_rsa 和 id_rsa.pub文件,如果存在,说明已经有SSH Key
cd ~/.ssh
ls
# 如果不存在则生成一个 RSA 加密的,一直回车
ssh-keygen -t rsa -C "xxx@xxx.com"
# 查看 SSH key 然后复制
cd ~/.ssh
cat id_rsa.pub
# 配置到 GitHub 的 SSH 里面
本地项目上传到远程
首先完成上述的私人仓库连接
根据项目的提示,完成 git config 邮箱和用户名的配置
git init //把这个目录变成Git可以管理的仓库
git add README.md //文件添加到仓库
git add . //不但可以跟单一文件,还可以跟通配符,更可以跟目录。一个点就把当前目录下所有未追踪的文件全部add了
git commit -m "first commit" //把文件提交到仓库
在远程创建仓库,例如dpo之后,关联远程仓库
~/dpo: git remote add origin xxx@xxx:xxx/xxx.git # 注意路径
~/dpo: git push origin master # 上述创建的远程分支是master不是main
~/dpo: git push -u origin master # 把本地库的所有内容推送到远程库上,-u参数用于设置远程分支作为本地分支的上游分支(upstream)。一旦设置了上游分支,后续可以直接使用 git push 和 git pull 而不需要指定远程和分支名称
Git 提交信息标记
参考:网页链接
feat:新功能或新特性
fix:修复某个 bug
docs:仅仅修改了文档,例如 Readme、注释
style:代码格式修改,不影响功能
refactor:代码重构,没有修改 bug 或者添加新功能
perf:提升性能的代码修改,例如优化数据库查询
test:添加或修改测试代码,例如添加某个单元测试
chore:其他不修改 src 或测试文件的杂物,例如构建过程和辅助工具的变动
build:影响系统构建或外部依赖的更改
ci:持续集成相关的更改
revert:回滚到某一次的提交