一、git环境初始化
1. 配置 git 的用户名
和邮箱
git config --global user.name "自定义名称"
git config --global user.email "自定义邮箱"
2. 本地无项目,克隆远程仓库项目
git clone 远程仓库地址
3. 本地有项目,将本地项目推送到远程空仓库里
- 初始化本地git版本库
git init
- 连接远程仓库
git remote add origin 远程仓库地址
- 需要将工作区变更文件添加到缓存区
git add .
- 将缓存区文件提交到本地仓库
git commit -m "首次提交"
- 如果远程已有文件,且和本地有差异,需要执行
git pull origin master --allow-unrelated-histories
- 最后,推送到远程仓库
git push -u origin "master"
二、git 的四个区域和四个区域的常见操作
工作区--> 暂存区--> 本地仓库--> 远程仓库
1. 工作区操作
- 查看工作区文件状态
git status Untracked files 状态的文件是工作区文件
git diff 查看工作区改动的文件和改动的内容(不算新增)
git diff --stat 查看改动文件的摘要信息,哪个文件,修改、新增、删除了多少行
- 工作区 添加到 暂存区
git add 文件路径(选中文件 → 复制路径) 添加指定文件
git add -A 或者 git add --all 或者 git add . 添加所有文件
2. 暂存区操作
- 查看暂存区文件状态
git status Changes to be committed 状态的文件是工作区文件
git diff --cached 查看暂存区改动的文件和改动的内容
git diff --cached --stat 查看改动文件的摘要信息,哪个文件,修改、新增、删除了多少行
- 暂存区 回退到 工作区
git reset 文件路径(选中文件 → 复制路径) 回退指定文件
git reset 回退所有文件
- 暂存区 提交到 本地仓库
git commit -m "feat: 添加注释" 文件路径(选中文件 → 复制路径) 提交指定文件
git commit -m "feat: 添加注释" 提交所有文件
3. 本地仓库操作
- 查看本地仓库的提交记录
git log 查看本地仓库的状态(查看 commit 日志:commit的id、提交人,时间,注释、文件)
- 本地仓库 回退到 暂存区
commitId 是提交备注下面的 commitId,不是上面的 commitId
// 方式一:git reset 删除回滚过程中的历史commit记录
git reset commitId 回退到 commitId 版本 (保留,回退到工作区)
git reset commitId --soft 回退到 commitId 版本 (保留,回退到暂存区)
git reset commitId --hard 回退到 commitId 版本 (不保留,回退)
// 方式二:git revert 保留历史commit记录,创建新的 commit 记录
git revert commitId 回退到 commitId 版本 (保留,回退到工作区)
- 本地仓库 推送到 远程仓库
git push 建立连接后推送,本地和远程建立连接后,使用此命令推送
git push -f 强制推送,使用 git reset commitId 回滚后,使用此命令推送
4. 远程仓库操作
- 远程仓库 回退到 工作区 | 缓存区 | 删掉
commitId 是提交备注下面的 commitId,不是上面的 commitId
// 方式一:git reset 删除回滚过程中的历史commit记录
// 1. 回退
git reset commitId 回退到 commitId 版本 (保留文件记录,回退到工作区)
git reset commitId --soft 回退到 commitId 版本 (保留文件记录,回退到暂存区)
git reset commitId --hard 回退到 commitId 版本 (不保留文件记录,回退)
// 2. 修改后,推送到远程仓库,改变远程commit历史记录
git push -f 推送到远程仓库,删除回滚过程中的历史commit记录
// 方式二:git revert 保留历史commit记录,创建新的 commit 记录
// 1. 回退
git revert commitId 回退到 commitId 版本 (保留,回退到工作区)
// 2. 修改后,推送到远程仓库,改变远程commit历史记录
git push 推送到远程仓库,保留历史commit记录
- 本地仓库 拉取 远程仓库文件
git pull
三、分支操作
- 查看分支
git branch 查看本地分支
git branch -r 查看远程分支
git branch -a 查看本地和远程分支
- 创建新分支
先将当前分支切换到总分支,然后执行
git branch 新分支名称
- 切换分支
git checkout 目标分支名
- 合并分支
先将当前分支切换到总分支,然后执行
git merge 子分支名称
- 删除分支
git branch -d/D 本地分支名(D 直接删除) 删除本地分支
git branch -r -d/D origin/远程分支名 (D 直接删除) 删除远程分支
3. 注意
1. 团队协作开发时,每次提交到远程之前必须先拉取远程分支代码
2. 每次切换本地分支时,必须确保当前本地分支全部提交,否则会把未提交的内容带到目标分支,且在当前分支修改的所有内容就会被删除
3. 远程仓库地址有两种常见格式:ssh 方式和 https 方式
ssh 方式:把本地的 ssh key 公钥放到 github 上后就可以直接使用 push 和 pull 等操作推送和拉取代码(推荐)
https 方式:每次执行拉取和推送命令都需要手动输入 github 账号的用户名和密码,进行验证,很麻烦(不推荐)