本文深入探讨了Git的基础知识,这是一个强大的版本控制系统,旨在跟踪代码更改并促进开发者之间的协作。通过概述基本命令,本文旨在为QA专业人员和开发者提供必要的技能,以有效管理GitHub仓库。无论您是初学者还是老手,这本综合指南都提供了宝贵的见解,帮助您掌握日常高效存储库管理所需的核心命令。
让我们一步一步地掌握所有命令。
1. 设置 Git 中的用户名
要在 Git 中设你的用户名,你可以使用 git config
命令,并使用 --global
标志设置一个全局配置,该配置适用于系统上的所有仓库。以下是操作步骤:
- 计算机上打开一个终端或命令提示符
- 使用以下命令设置您的用户名:
git config - global user. name "Your Name"
将 “Your Name” 替换为您期望的 Git 用户名。
在 Git 中设置用户名对于在推送提交时识别你对仓库的贡献至关重要。这有助于其他协作者和像 GitHub 这样的服务准确归属你的更改。
你还可以使用 git config
命令更改与你的 git 提交相关联的电子邮件地址。
git config --global user.email "john.doe@ymail.com"
2. 设置仓库
初始化一个 Git 仓库涉及在当前工作目录中创建一个 .git 子目录。该子目录包含了仓库的所有关键 Git 元数据,包括对象、引用和模板文件的目录,无论是全新的仓库还是对现有仓库的重新初始化。
git init
3.添加文件到暂存区
git add
命令将工作目录中新的或更改的文件添加到 Git 暂存区域。
3.1 将特定文件添加到暂存区
git add file1.ts
3.2 添加所有文件:
git add .
4. 仓库状态检查
当你执行 git status
命令时,可以深入了解工作目录和暂存区域的当前状态。 此命令提供了哪些更改已暂存、哪些尚未暂存的全面概述,并且还突出显示存储库中任何未跟踪的文件。
git status
5. 在仓库中创建当前更改的快照
记录对仓库的更改。此命令用于将更改保存到本地存储库中。
- 使用 -m 选项添加提交消息
- 使用 -a 选项将所有文件添加到提交中
- 使用 —amend 选项重新编写最后一次提交,包括当前已暂存的更改或新的提交消息
git commit -m "Commit message" git commit --amend git commit --amend -m "New message"
6. 查看 Git 的跟踪历史
Git 用户可以通过在 git log
命令中添加一些选项来以更高级的方式查看 Git 的跟踪历史。
git log
此外,还可以限制日志输出的提交次数:
git log -5
该命令各部分的含义如下:
-
git log
:该命令用于查看存储库的提交历史记录。 -
-5
:此选项将输出限制为最近的五次提交。 你可以将 5 替换为任意数字以查看不同数量的提交。
当你运行git log -5
时,Git 将显示有关存储库中最近五个提交的信息。 其中包括每次提交的提交 ID(SHA-1 哈希)、作者、日期和提交消息等详细信息。
以下是输出的示例:
git log --after="yesterday" --before="2024-04-03"
git log --author="john doe"
git log -- file1.ts
git log -S "fix"
commit abcd1234
Author: John Doe <john@example.com>
Date: Thu Mar 24 12:00:00 2024 +0100
Added new feature XYZ
commit efgh5678
Author: Jane Smith <jane@example.com>
Date: Wed Mar 23 11:00:00 2024 +0100
s Fixed bug in component ABC
...s
7. 显示变化
git diff
显示提交、提交和工作树之间的更改。
git diff
指定文件名以显示对其文件正在进行的更改:
git diff file1.ts
显示分支master和develop之间的变化:
git diff main..new_feature
8. 文件重命名
要重命名文件或目录,可以使用 mv
命令,并提供源路径和目标路径。 源路径指的是当前文件或目录,而目标路径表示文件或目录将被移动和重命名到的现有目录。
git mv directory/file1.ts directory
9. 创建分支
分支作为开发的不同路径,允许在不同的功能或修复上进行并行进展。
它提供了一个简化的工作流程,用于编辑、暂存和提交更改。通过使用 git branch
命令,你可以进行各种分支操作,包括创建、列出、重命名和删除。
git branch branch_name
另外,你可以将一些键传递给 gitbranch 命令:
-
gitbranch -m <branch>
重命名当前分支。 -
gitbranch -d <branch>
在本地删除分支。 git push origin --delete <branch>
将更改推送到远程,通知删除分支到远程原始存储库(需要与上一个命令一起使用)-
gitbranch -a
显示所有分支的列表。
10. 撤消文件更改
git Restore
命令有助于取消暂存甚至丢弃未提交的本地更改。 该命令可用于撤消 git add 和取消之前添加的更改的影响,也可用于丢弃文件中的本地更改,从而恢复其上次提交的状态。
git restore newFile.ts git restore --staged index.ts
11. 使用远程命令
git Remote
管理一组跟踪的远程存储库。
显示所有远程连接的列表:
git remote -v
要更改远程 URL:
git remote set-url <url> new_url
要重命名当前连接,可以使用以下命令:
git remote rename <old_name> new_name
删除连接:
git remote remove <remote_name>
12. 将更改保存到剪贴板
git stash
将更改存储在脏工作目录中。 此命令获取未提交的更改(暂存的和未暂存的),并将它们保存起来以供以后使用。
git stash
可以在命令中添加几个键:
-
git stash
来存储跟踪的文件。 -
git stash -u
隐藏未跟踪的文件。 -
git stash -a
存储所有文件(包括忽略的文件)。
stash 命令将你的更改保存到某种更改列表中,你只需使用以下命令即可访问它:
git stash list
此外,你可以将消息添加到存储中,并使用 git stash save "message"
命令对其进行注释:
git stash save "some comment"
此外,它还支持查看存储差异:
git stash show
要应用存储保存的更改(它将应用存储列表中的最后一个存储):
git stash apply
并能够清除所有存储:
git stash clear
13. 标记
git tag
存储库历史记录中特定于标签的点。
git tag v1.1
要访问标签列表,请使用 git tag -l
。 要删除,只需传递特定的密钥 git tag -d v1.0
。 要列出远程标签:git ls-remote --tags
。 要重新标记(重命名现有标签),只需使用强制键发送: git tag -f v1 v1.1
,在这种情况下,我们用新的 v.1.1 重命名 v1
14. 获取最新的远程更改
要获取本地的最新更改,有 2 个 git 命令:git pull
和 git fetch
。 它们之间的主要区别在于 git fetch
将下载远程内容,但不会更新本地存储库的工作状态,从而使当前的工作保持不变。 可以使用带有 --prune
键的 git fetch
命令,这是清理过时分支的最佳工具。 在获取之前,请删除远程上不再存在的所有远程跟踪引用。 相反,git pull
将下载活动本地分支的远程内容并立即执行合并到文件中。 git pull
还可以与 rebase 通用键一起使用: git pull -r
来拉取和 rebase
15. 撤消最后一次提交
在 git 中,有两种方法可以撤消最后的更改:git revert
和 git Reset
。 git revert
命令创建一个新的提交,撤消先前提交的更改。 此命令向项目添加新的历史记录。 git reset
用于撤消工作目录中尚未提交的更改。 重置命令可以与参数 --soft
、--mixed
、--hard
一起使用。 默认情况下,git 使用带有 --mixedkey
的重置(取消提交 + 未暂存的更改)。 开发人员经常使用的是 --hard
选项(取消提交 + 取消暂存 + 删除更改)。 当传递 --hard
时,提交历史记录引用指针将更新到指定的提交。--soft
是一个更准确的方法,如果您想取消提交更改,那么此时更改将保留在暂存区。
例如,在 git 上将文件硬重置为 HEAD:
git reset --hard HEAD
16. 在提交或分支之间切换
使用 git checkout
命令。 你可以通过将branch_name/commit_sha
传递给git checkout
命令来在提交和分支之间切换。 另外,你可以使用 checkout 命令创建一个新的不存在的分支,它将创建一个新分支并打开它:
git checkout -b new_branch
要检查某些提交,其中 5939518 是提交的 SHA(哈希值):
git checkout 5939518
17. 显示谁对所选文件进行了更改
git Blame
命令用于此目的。 主要目的是显示所选文件的日志,显示谁以及何时对此文件进行了更改。
git blame somefile.js
它将显示对此文件所做的提交、作者、日期和提交消息的列表。 可以通过传递一些键来使用此命令,例如 -e 来显示日志中作者的电子邮件地址,-L 1-7 来限制和仅显示 7 个输出行。 gitblame
和 git log
之间的主要区别在于,blame 可以告诉你谁是最后一个修改每一行代码的人以及何时修改。