在本文中,我们将讨论 Git。Git 是一个版本控制系统,一个跟踪代码更改并与他人共享这些更改的工具。本文列出了 QA 人员/开发人员应该了解的最基本的命令,以便在高层次上掌握 GitHub 存储库的管理。再次复习基本的日常命令对初学者和有经验的用户都有用。
在 Git 中设置用户名
需要用户名才能将提交绑定到您的名字。这与用于登录 GitHub 配置文件的 GitHub 帐户用户名不同。git config您可以使用命令设置或更改用户名。新名称将自动显示在通过命令行推送的后续提交中。
您还可以使用命令更改与您的 git 提交关联的电子邮件地址git config。新的电子邮件地址将自动显示在所有通过命令行提交到 GitHub 的未来提交中。
凭据缓存
可以使用带有标志的config选项来缓存凭据。--global这有助于您在创建新提交时无需手动输入用户名和密码。有助于将密码临时存储在内存中。
设置存储库
创建一个空的 Git 存储库或重新初始化一个现有的。执行git init会在当前工作目录中创建一个 .git 子目录,其中包含新存储库所有必需的 Git 元数据。此元数据包括对象、引用和模板文件的子目录。
将文件添加到暂存区
该git add命令将工作目录中的新文件或更改的文件添加到 Git 暂存区。
添加somefile:
添加所有文件:
回购状态检查
该git status命令显示工作目录和暂存区的状态。它可以让您查看哪些更改已暂存,哪些尚未暂存,以及哪些文件未被 Git 跟踪。
拍摄变化快照
记录对存储库的更改。此命令用于将更改保存到本地存储库。它可以与一些 git 键一起使用,例如:
- - m向您的提交添加一条消息
- - a将所有文件暂存到您的提交
- --amend使用任何当前暂存的更改或新的提交消息重写最后一次提交
检查 Git 历史
显示提交日志。此外,作为 Git 用户,您可以通过向git log命令添加一些键以更高级的方式使用该git log命令。
使用oneline标志将每个提交显示为一行:
shortlog按作者对每个提交进行分组并显示每个提交消息的第一行:
该--graph选项绘制一个 ASCII 图,表示提交历史的分支结构。这通常–oneline与–decorate命令结合使用,以便更容易地查看哪个提交属于哪个分支:
您还可以限制提交日志输出的次数:
支持过滤 git 历史记录,例如按日期、作者、文件或消息:
显示变化
git diff显示提交、提交和工作树之间的变化。
指定文件名以显示其文件正在进行的更改:
显示分支 master 和 develop 之间的变化:
文件重命名
您可以使用命令重命名文件或文件夹mv。您应该指定源路径和目标路径。源是实际文件或文件夹,目标是现有文件夹。
分支特征
一个分支代表一条独立的开发线。分支作为编辑/暂存/提交过程的抽象。该git branch命令允许您创建、列出、重命名和删除分支。
要创建一个新分支:
您也可以将一些键传递给git branch命令:
- git branch -m <branch>重命名当前分支
- git branch -d <branch>删除本地分支
- git push origin --delete <branch>将更改推送到远程通知删除分支到远程原始存储库(需要与上一个命令一起使用)
- git branch -a显示所有分支的列表
撤消文件更改
git restore命令有助于取消暂存甚至丢弃未提交的本地更改。该命令可用于撤消您之前添加的 git add 和 unstage 更改的影响。它还可用于丢弃文件中的本地更改,从而恢复其上次提交的状态。
使用远程命令
git remote管理一组被跟踪的远程存储库。
显示所有远程连接的列表:
要更改远程 URL:
要重命名当前连接,可以使用下一个命令:
要删除连接:
将更改保存到剪贴板
git stash将更改隐藏在脏工作目录中。此命令获取您未提交的更改(暂存的和未暂存的)并将它们保存起来以备后用。
可以将几个键添加到命令中:
- git stash隐藏跟踪文件
- git stash -u隐藏未跟踪的文件
- git stash -a隐藏所有文件(包括忽略的文件)
该stash命令将您的更改保存到某种更改列表中,您可以使用以下方法访问它:
此外,您可以向您的藏匿处添加一条消息,使用git stash save "message"命令对其进行注释:
此外,它还支持查看存储差异:
要应用存储保存的更改(它将应用存储列表中的最后一个存储):
并能够清除所有藏匿处:
标记
git tag标记存储库历史记录中的特定点。
要访问标签列表,请使用git tag -l. 要删除,只需传递特定的 key git tag -d v1.0。列出远程标签:git ls-remote --tags. 要重新标记(现有标记的重命名),只需使用 force key: 发送git tag -f v1 v1.1,在这种情况下我们v1使用 new重命名v.1.1。
获取最新的远程更改
要获取本地的最新更改,有两个 git 命令:git pull和git fetch. 它们之间的主要区别在于git fetch将下载远程内容但不会更新本地存储库的工作状态,从而使您当前的工作保持不变。我个人使用git fetch带键的命令--prune,这是清理过时分支的最佳实用程序。在获取之前,删除遥控器上不再存在的任何远程跟踪引用。git pull相反,将为活动的本地分支下载远程内容,并立即执行合并到您的文件。也git pull可以与 rebase 公共键一起使用:git pull -r拉和变基。
撤消更改并恢复丢失的提交
git cherry-pick用于此目的。git 中的 Cherry-picking 意味着您从一个分支中选择一个提交并将其应用到另一个分支。通常在开发团队中,这用于发布阶段的快速错误修复(修补程序),或者当需要应用未合并的提交时。要使用此命令,您应该通过提交 sha。
撤消上次提交
在 git 中,有两种方法可以撤消最后的更改:git revert和git reset. git revert命令创建一个新的提交,撤消先前提交的更改。此命令向项目添加新的历史记录。git reset用于撤消工作目录中尚未提交的更改。重置命令可以与参数--soft, --mixed,一起使用--hard。默认情况下,Git 使用 reset with --mixedkey (uncommit + unstage changes)。开发人员经常使用的是--hard选项(uncommit + unstage + delete changes)。当通过--hard提交历史 ref 指针时,将更新为指定的提交。--soft如果您想取消提交更改,这是一种更准确的方法,在这种情况下,更改将暂存。
例如,要在 git 上将文件硬重置为 HEAD:
在提交或分支之间切换
git checkout使用命令。您可以在提交和分支之间切换,只需将 branch_name/commit_sha 传递给git checkout命令即可。此外,您可以使用 checkout 命令创建新的不存在的分支,它将创建新分支并切换到它:
要检查一些提交,其中 5939515 是提交 sha:
找到破坏某些东西的提交
git bisect是你的朋友——Git 中一个非常强大的命令,它有很大帮助。它用于将两个提交指向边缘情况,然后重新传递这两个点之间的所有提交历史记录(如果存在某些特定的失败,则逐个提交标记)。要使用,首先,您应该开始使用工具进行初始化:
然后我们应该将两个边缘情况标记为坏点和好点:
通过提交你可以很容易地找到错误的提交,可能引入了一些错误/错误。
显示谁对所选文件进行了更改
git blame命令用于此。主要目的是显示所选文件的日志,显示谁以及何时对此文件进行了更改。
这将显示对该文件所做的提交、作者、日期和提交消息的列表。该命令可用于传递一些键,例如-e在日志中显示作者的电子邮件地址,-L 1-7以限制和仅显示 7 行输出。git blame和之间的主要区别在于git log,blame可以告诉您最后修改每行代码的人是谁以及何时。