Git官网: git-scm.com/
获取Git仓库:一、git init,二、git clone 仓库地址
文件状态: 一、已跟踪,二、未跟踪。未跟踪又分为staged、Unmodified、Modified。
Git配置:
// 配置用户名和邮箱
git config --global user.name xxx
git config --global user.email xxx
Git基本命令:
// 创建分支
git branch 分支名
// 切换分支
git checkout 分支名
// 创建并切换分支
git checkout -b 分支名
// 合并test分支
git merge test
// 查看所有分支
git branch
// 查看所有分支和最后一次提交
git branch -v
// 查看所有合并到当前分支的分支
git branch --merged
// 查看所有没有合并到当前分支的分支
git branch --no-merged
// 删除当前分支
git branch -d 分支名
// 强制删除某一分支
git branch -D 分支名
// 提交所有文件到暂存区
git add .
// 将暂存区的文件进行提交
git commit -m "提交说明"
// 等价于 git add . 和 git commit -m "提交说明"
git commit -a -m "提交说明"
// 检查文件状态
git status
git status -s
git status --short
// 将单个文件提交到暂存区
git add abc.js
// 查看提交历史
git log
git log --pretty=online --graph
git log --pretty=online
// 版本回退
git reset --hard HEAD^
git reset --hard HEAD~1000
git reset --hard 3455dfrer33
// 版本回退后还能查看完整的历史记录
git reflog
远程服务器:
// 查看远程仓库
git remote
git remote -v
// 添加远程仓库
git remote add 仓库名 仓库地址
// 重命名远程仓库
git remote rename 旧仓库名 新仓库名
// 移除远程仓库
git remote remove 仓库名
远程服务器的交互:
// git push默认是将当前分支推送到origin远程仓库的同名分支
git push(如果当前是master分支,则等价于git push origin master)
// git fetch默认是从origin中获取代码
git fetch(等价于git fetch origin)
// 明确指定从哪个远程仓库的哪个分支获取
git fetch origin main
// 将代码进行合并
git merge
// 明确指定哪个仓库的哪个分支进行合并
git merge origin/main
// 将代码拉下来并进行合并,等价于git fetch + git merge
git pull
合并远程仓库代码常遇问题解决方案:
// 设置上游分支
git branch --set-upstream-to=origin/master
// 合并两个不相关的分支
git merge --allow-unrelated-histories
// 推送当前分支到远程main分支
git push origin head:main
// 创建一个跟远程分支同名并对远程分支进行跟踪的分支
git checkout --track origin/main
// push有很多可配置值,包含noting、current、upstream、tracking、simple,默认值为simple
git config push.default upstream
Git标签:
// 打轻量级标签
git tag v1.0
// 打附注标签要借助-a选项,并且通过-m添加额外信息
git -a v1.1 -m "额外信息"
// 默认情况,git push不会推送标签到远程仓库。需要显示推送
git push origin v1.0
git push origin --tags
// 删除本地标签
git tag -d v1.1
// 删除远程分支
git push 远程仓库 --delete v1.1
// 切换标签
git checkout v1.0
查看暂存区的文件: git cat-file -p 003d(校验和)