以下是 Git 常用的操作命令大全,涵盖了从创建仓库、文件操作、分支管理、合并与冲突解决、远程仓库管理等多个方面的常用操作。
1. 基本操作
命令 | 说明 |
---|
git init | 初始化本地 Git 仓库 |
git clone <repository> | 克隆远程仓库到本地 |
git status | 查看当前仓库的状态 |
git add <file> | 添加文件到暂存区 |
git add . | 添加当前目录下所有文件到暂存区 |
git commit -m "message" | 提交暂存区文件到本地仓库并附加提交说明 |
git log | 查看提交历史 |
git diff | 查看未暂存的改动 |
git diff --cached | 查看已暂存的改动 |
git reset --hard | 重置工作区(丢弃所有修改) |
2. 分支管理
命令 | 说明 |
---|
git branch | 查看本地分支列表 |
git branch <branch_name> | 创建新分支 |
git checkout <branch_name> | 切换到指定分支 |
git checkout -b <branch_name> | 创建并切换到新分支 |
git branch -d <branch_name> | 删除本地分支 |
git branch -D <branch_name> | 强制删除本地分支 |
git merge <branch_name> | 合并指定分支到当前分支 |
git stash | 暂存当前修改,并清理工作区 |
git stash pop | 应用暂存的改动并删除暂存记录 |
git stash list | 查看暂存的改动列表 |
git rebase <branch_name> | 变基当前分支到指定分支 |
3. 远程仓库操作
命令 | 说明 |
---|
git remote -v | 查看远程仓库地址 |
git remote add origin <url> | 添加远程仓库 |
git fetch | 从远程仓库获取更新但不合并 |
git pull | 获取远程仓库的更新并合并到当前分支 |
git push origin <branch_name> | 将当前分支推送到远程仓库 |
git push origin --delete <branch_name> | 删除远程仓库中的分支 |
git remote rm <name> | 删除远程仓库连接 |
4. 文件操作
命令 | 说明 |
---|
git rm <file> | 删除文件并将删除操作提交到暂存区 |
git mv <old_name> <new_name> | 重命名文件并移动到暂存区 |
git checkout -- <file> | 撤销指定文件的修改 |
git restore <file> | 恢复文件的未提交更改 |
git reset HEAD <file> | 取消已暂存的文件 |
git clean -f | 删除未跟踪的文件(谨慎使用) |
5. 标签(Tags)操作
命令 | 说明 |
---|
git tag | 查看所有标签 |
git tag <tag_name> | 创建标签 |
git tag -a <tag_name> -m "message" | 创建带说明的标签 |
git show <tag_name> | 查看标签信息 |
git push origin <tag_name> | 推送标签到远程仓库 |
git push origin --tags | 推送所有标签到远程仓库 |
git tag -d <tag_name> | 删除本地标签 |
git push origin --delete <tag_name> | 删除远程标签 |
6. 合并与冲突解决
命令 | 说明 |
---|
git merge <branch_name> | 将指定分支合并到当前分支 |
git mergetool | 启动合并工具以解决冲突 |
git diff <branch_name> | 查看两个分支之间的差异 |
git log --merge | 查看哪些提交引发了冲突 |
git reset --merge | 在合并失败后恢复合并前的状态 |
git commit --no-edit | 解决冲突后提交代码,不修改提交说明 |
7. 撤销操作
命令 | 说明 |
---|
git reset --soft HEAD~1 | 撤销上一次的提交,但保留工作区和暂存区的更改 |
git reset --mixed HEAD~1 | 撤销上一次提交,保留工作区的更改,清除暂存区 |
git reset --hard HEAD~1 | 撤销上一次提交,并删除工作区和暂存区的更改 |
git revert <commit_hash> | 生成一次新的提交,用于撤销指定提交的内容 |
git checkout <commit_hash> -- <file> | 将指定文件恢复到某个提交时的状态 |
8. 查看历史
命令 | 说明 |
---|
git log | 查看提交历史 |
git log --oneline | 以简洁模式显示提交历史 |
git log --graph | 显示分支合并图 |
git log --author="<name>" | 查看指定作者的提交 |
git log --since="2 weeks ago" | 查看最近两周的提交 |
git show <commit_hash> | 查看指定提交的详情 |
git blame <file> | 查看文件的每一行是谁修改的 |
9. 配置与别名
命令 | 说明 |
---|
git config --global user.name "Your Name" | 设置全局用户名 |
git config --global user.email "youremail@example.com" | 设置全局用户邮箱 |
git config --global core.editor "editor" | 设置默认编辑器 |
git config --global alias.st status | 设置命令别名,例如 git st 等价于 git status |
git config --list | 查看当前的 Git 配置 |
10. 其他常用命令
命令 | 说明 |
---|
git bisect start | 开始二分查找错误引入的提交 |
git bisect good <commit_hash> | 标记某个提交为 "正确" |
git bisect bad <commit_hash> | 标记某个提交为 "错误" |
git archive --format=zip --output=archive.zip master | 将指定分支打包成 zip 文件 |
git reflog | 查看所有的引用记录,包括那些已经被删除的分支或提交 |
11. 子模块操作
命令 | 说明 |
---|
git submodule add <repository> | 添加子模块 |
git submodule update | 更新子模块 |
git submodule init | 初始化子模块 |
git submodule deinit -f --all | 删除所有子模块 |
以上是 Git 常用的命令,能够帮助你进行代码版本控制、分支管理、远程协作等操作。在实际工作中,这些命令结合使用,可以有效地管理项目的版本历史和团队协作流程。