Git是一个开源的分布式版本控制系统,用于有效、高速地处理从很小到非常大的项目版本管理。以下是Git的一些常用操作汇总:
一、基础配置
-
配置Git用户信息
- 查看全局的用户名/邮箱配置:
git config --global user.name
/user.email
- 查看本项目的用户名/邮箱配置:
git config --local user.name
/user.email
- 设置全局的用户名/邮箱配置:
git config --global user.name "你的名字"
、git config --global user.email "你的邮箱"
- 查看全局的用户名/邮箱配置:
二、仓库操作
-
初始化仓库
- 在当前目录下初始化一个新的Git仓库:
git init
- 在当前目录下初始化一个新的Git仓库:
-
克隆仓库
- 克隆整个仓库到本地:
git clone <仓库地址>
- 克隆指定分支到本地:
git clone -b <分支名> <仓库地址>
- 克隆仓库到指定文件夹:
git clone <仓库地址> <目标文件夹名>
- 克隆整个仓库到本地:
-
查看状态
- 显示工作目录和暂存区的状态,查看哪些文件被修改或准备提交:
git status
- 显示工作目录和暂存区的状态,查看哪些文件被修改或准备提交:
-
查看日志
- 显示提交历史:
git log
- 简化输出提交历史:
git log --oneline
- 显示提交历史:
三、文件操作
-
添加文件
- 将指定文件添加到暂存区:
git add <文件>
- 将所有修改的文件添加到暂存区:
git add .
- 将指定文件添加到暂存区:
-
提交文件
- 将暂存区的文件提交到本地仓库:
git commit -m "<提交信息>"
- 将暂存区的文件提交到本地仓库:
-
查看文件内容差异
- 查看工作目录与暂存区之间的差异:
git diff
- 查看指定文件在工作目录与暂存区之间的差异:
git diff <文件名>
- 查看工作目录与暂存区之间的差异:
-
恢复文件
- 撤销对文件的修改,恢复到暂存区状态:
git checkout -- <文件>
- 将暂存的更改恢复到工作目录:
git reset HEAD <文件>
- 将所有本地修改的文件恢复到上次提交时的状态:
git reset --hard HEAD
- 撤销对文件的修改,恢复到暂存区状态:
四、分支操作
-
查看分支
- 查看所有本地分支:
git branch
- 查看当前分支:
git branch --show-current
- 查看所有本地分支:
-
创建分支
- 创建一个新的分支:
git branch <分支名>
- 创建并切换到新分支:
git checkout -b <分支名>
- 创建一个新的分支:
-
切换分支
- 切换到指定分支:
git checkout <分支名>
- 切换到指定分支:
-
合并分支
- 将指定分支的更改合并到当前分支:
git merge <分支名>
- 将一系列提交从一个基底上“复制”下来,再将这些提交“应用”到另一个基底上(变基操作):
git rebase <分支名>
- 将指定分支的更改合并到当前分支:
-
删除分支
- 删除本地分支:
git branch -d <分支名>
(如果有未合并的更改,则删除失败) - 强制删除本地分支:
git branch -D <分支名>
- 删除本地分支:
五、远程仓库操作
-
查看远程仓库信息
- 显示远程仓库信息:
git remote -v
- 显示远程仓库信息:
-
添加远程仓库
- 将远程仓库地址添加到本地仓库:
git remote add origin <仓库地址>
- 将远程仓库地址添加到本地仓库:
-
推送代码
- 将本地分支的更改推送到远程仓库:
git push origin <分支名>
- 创建远程分支并推送到该远程分支:
git push --set-upstream origin <远程分支名>
- 将本地分支的更改推送到远程仓库:
-
拉取代码
- 从远程仓库拉取更新并合并到当前分支:
git pull origin <分支名>
- 拉取远程仓库的最新更改但不合并:
git fetch origin
- 从远程仓库拉取更新并合并到当前分支:
-
删除远程分支
- 删除远程分支:
git push origin :<远程分支名>
(注意冒号前有空格)
- 删除远程分支:
六、其他操作
-
临时保存更改
- 暂存本地修改:
git stash
- 显示暂存的本地修改列表:
git stash list
- 还原某个暂存的本地修改:
git stash pop stash@{0}
- 清空所有暂存的本地修改:
git stash clear
- 删除第一个暂存的本地修改:
git stash drop stash@{0}
- 暂存本地修改:
-
搜索代码
- 在仓库中搜索关键字:
git grep <关键字>
- 在仓库中搜索关键字:
-
补丁管理
- 生成当前和某版本之间差异的补丁:
git diff <版本ID> > <补丁名>
- 导入补丁:
git apply <补丁名>
- 生成当前和某版本之间差异的补丁:
-
子模块管理
- 查看子模块列表:
git submodule
- 初始化子模块:
git submodule update --init <子模块名>
- 更新子模块:
git submodule update <子模块名>
- 递归地更新所有子模块:
git submodule update --init --recursive
- 查看子模块列表:
请注意,Git的功能非常强大且灵活,以上只是常用操作的一部分。在实际使用中,可能还需要根据具体需求掌握更多高级操作和配置。