git练习:learngitbranching.js.org/?locale=zh_…(推荐)
常用术语
- Workspace:工作区
- Index/Stage:暂存区
- Repository:仓库区(本地仓库)
- Remote:远程仓库
一、新建代码库
# 在当前目录新建一个 Git 代码库
git init
# 新建一个目录,将其初始化为 Git 代码库
git init [project-name]
# 克隆远程仓库,包括代码和历史记录
git clone [url]
二、配置
# 查看当前 Git 配置
git config --list
# 编辑 Git 配置文件
git config -e [--global]
# 设置提交代码时的用户信息
git config [--global] user.name "[name]"
git config [--global] user.email "[email address]"
三、增加/删除文件
# 添加文件到暂存区
git add [file1] [file2] ...
git add [dir] # 添加指定目录
git add . # 添加当前目录所有文件
git add -p # 交互式添加变更
# 删除文件并放入暂存区
git rm [file]
# 停止追踪文件,但保留工作区文件
git rm --cached [file]
# 文件重命名并添加到暂存区
git mv [file-original] [file-renamed]
四、代码提交
# 提交暂存区变更到仓库
git commit -m "[message]"
# 提交暂存区指定文件
git commit [file1] [file2] -m "[message]"
# 跳过暂存区,直接提交工作区的所有变更
git commit -a -m "[message]"
# 修改上次提交的信息
git commit --amend -m "[message]"
# 重做上一次提交,并包含新变化
git commit --amend [file1] [file2]
五、分支
# 分支操作
git branch # 列出本地分支
git branch -r # 列出远程分支
git branch -a # 列出所有分支
git branch [branch-name] # 新建分支
# 切换分支
git checkout [branch-name] # 切换到指定分支
git checkout -b [branch-name] # 新建并切换到分支
# 合并分支
git merge [branch] # 将指定分支合并到当前分支
# 删除分支
git branch -d [branch-name] # 删除本地分支
git push origin --delete [branch-name] # 删除远程分支
六、标签
# 标签操作
git tag # 列出所有标签
git tag [tag] # 新建标签
git tag -d [tag] # 删除本地标签
git push [remote] [tag] # 推送标签到远程
七、查看信息
# 状态和日志
git status # 显示工作区状态
git log # 显示提交历史
git log --stat # 提交历史及变更文件统计
git log -5 --oneline # 最近 5 次提交简要信息
# 差异查看
git diff # 工作区与暂存区的差异
git diff --cached # 暂存区与上一次提交的差异
git diff HEAD # 工作区与最新提交的差异
八、远程同步
# 查看和设置远程仓库
git remote -v # 显示所有远程仓库
git remote add [name] [url] # 添加远程仓库
# 同步代码
git fetch [remote] # 拉取远程更新
git pull [remote] [branch] # 拉取并合并分支
git push [remote] [branch] # 推送本地分支到远程
git push [remote] --all # 推送所有分支
九、撤销操作
# 文件恢复
git checkout [file] # 恢复工作区文件
git checkout [commit] [file] # 恢复指定提交的文件
# 重置操作
git reset [file] # 重置暂存区文件
git reset --hard # 重置暂存区和工作区
git reset --hard [commit] # 回退到指定提交
# 暂存未提交的变更
git stash # 保存未提交的变更
git stash pop # 恢复保存的变更