Git 命令汇总
Git 创建仓库
进入使用的目录,执行 init 后可以将此目录初始化为 git 仓库
cd my-project
git init
或者指定目录作为 git 仓库
git init newrepo
Git 基本操作
创建仓库命令
下表列出了 git 创建仓库的命令:
| 命令 | 说明 |
|---|---|
| git init | 初始化仓库 |
| git clone | 拷贝一份远程仓库,也就是下载一个项目。 |
提交与修改
Git 的工作就是创建和保存你的项目的快照及与之后的快照进行对比。
下表列出了有关创建与提交你的项目的快照的命令:
| 命令 | 说明 |
|---|---|
| git add | 添加文件到暂存区 |
| git status | 查看仓库当前的状态,显示有变更的文件。 |
| git diff | 比较文件的不同,即暂存区和工作区的差异。 |
| git difftool | 使用外部差异工具查看和比较文件的更改。 |
| git range-diff | 比较两个提交范围之间的差异。 |
| git commit | 提交暂存区到本地仓库。 |
| git reset | 回退版本。 |
| git rm | 将文件从暂存区和工作区中删除。 |
| git mv | 移动或重命名工作区文件。 |
| git notes | 添加注释。 |
| git checkout | 分支切换。 |
| git switch (Git 2.23 版本引入) | 更清晰地切换分支。 |
| git restore (Git 2.23 版本引入) | 恢复或撤销文件的更改。 |
| git show | 显示 Git 对象的详细信息。 |
提交日志
| 命令 | 说明 |
|---|---|
| git log | 查看历史提交记录 |
| git blame | 以列表形式查看指定文件的历史修改记录 |
| git shortlog | 生成简洁的提交日志摘要 |
| git describe | 生成一个可读的字符串,该字符串基于 Git 的标签系统来描述当前的提交 |
远程操作
| 命令 | 说明 |
|---|---|
| git remote | 远程仓库操作 |
| git fetch | 从远程获取代码库 |
| git pull | 下载远程代码并合并 |
| git push | 上传远程代码并合并 |
| git submodule | 管理包含其他 Git 仓库的项目 |
Git 分支管理
创建分支
创建新分支并切换到该分支:
git checkout -b <branchname>
切换分支命令:
git checkout (branchname)
当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录。
查看分支
查看所有分支:
git branch
查看远程分支:
git branch -r
查看所有本地和远程分支:
git branch -a
合并分支
将其他分支合并到当前分支:
git merge <branchname>
解决合并冲突
当合并过程中出现冲突时,Git 会标记冲突文件,你需要手动解决冲突。
打开冲突文件,按照标记解决冲突。
标记冲突解决完成:
git add <conflict-file>
提交合并结果:
git commit
删除分支
删除本地分支:
git branch -d <branchname>
强制删除未合并的分支:
git branch -D <branchname>
删除远程分支:
git push origin --delete <branchname>
Git 查看提交历史
git log
在使用 Git 提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,我们可以使用 git log 命令查看。
git log 命令用于查看 Git 仓库中提交历史记录。
git log 显示了从最新提交到最早提交的所有提交信息,包括提交的哈希值、作者、提交日期和提交消息等。
git log 命令的基本语法:
git log [选项] [分支名/提交哈希]
git blame
git blame 命令用于逐行显示指定文件的每一行代码是由谁在什么时候引入或修改的。
git blame 可以追踪文件中每一行的变更历史,包括作者、提交哈希、提交日期和提交消息等信息。
如果要查看指定文件的修改记录可以使用 git blame 命令,格式如下:
git blame [选项] <文件路径>
恢复和回退
Git 提供了多种方式来恢复和回退到之前的版本,不同的命令适用于不同的场景和需求。
以下是几种常见的方法:
- git checkout: 切换分支或恢复文件到指定提交。
- git reset: 重置当前分支到指定提交(软重置、混合重置、硬重置)。
- git revert: 创建一个新的提交以撤销指定提交,不改变提交历史。
- git reflog: 查看历史操作记录,找回丢失的提交。
-
git checkout: 检查出特定版本的文件
git checkout命令用于切换分支或恢复工作目录中的文件到指定的提交。恢复工作目录中的文件到某个提交
git checkout <commit> -- <filename> -
git reset: 重置当前分支到特定提交
git reset命令可以更改当前分支的提交历史,它有三种主要模式:--soft、--mixed和--hard。–soft: 只重置 HEAD 到指定的提交,暂存区和工作目录保持不变
git reset --soft <commit>–mixed(默认): 重置 HEAD 到指定的提交,暂存区重置,但工作目录保持不变
git reset --mixed <commit>–hard: 重置 HEAD 到指定的提交,暂存区和工作目录都重置
git reset --hard <commit> -
git revert: 撤销某次提交
git revert命令创建一个新的提交,用来撤销指定的提交,它不会改变提交历史,适用于已经推送到远程仓库的提交git revert <commit> -
git reflog: 查看历史操作记录
git reflog命令记录了所有 HEAD 的移动。即使提交被删除或重置,也可以通过 reflog 找回git reflog
Git 标签
如果你达到一个重要的阶段,并希望永远记住提交的快照,你可以使用 git tag 给它打上标签
标签语法格式
git tag <tagname>
推送标签到远程仓库
默认情况下,git push 不会推送标签,你需要显式地推送标签
git push origin <tagname>
推送所有标签
git push origin --tags
删除轻量标签
本地删除
git tag -d <tagname>
远程删除
git push origin --delete <tagname>
Enjoy Reading This Article?
Here are some more articles you might like to read next: