本文是一个 Git 速查表,包含了可能每天使用的最常见的 Git 命令。
如果你是与开发人员一起工作的测试人员,你更应该熟悉基本的 Git 命令。
本文包含了作为一名 QA 需要掌握的 Git 知识点。
如果你的机器上没有安装Git,可以查看这篇文章 How to Install Git on Mac and Generate SSH Keys.
创建一个空的 Git 仓库或者重新初始化一个已存在的
git init
将 foo 仓库克隆到一个名为 foo 的新目录中:
git clone https://github.com/<username>/foo.git foo
如何在 Git 仓库中创建一个新的分支
当您想开发一个新需求时,通常会在 Git 中创建一个新分支。可以远离主分支,处理自己的需求分支,这样 master 分支总是干净的。
要创建新分支
git checkout -b <new_branch_name>
如果您想知道工作目录中有哪些分支可用,请使用:
git branch
输出示例:
develop
my_feature
master
创建新分支时,Git 会自动切换到新分支。
如果您有多个分支,那么可以使用 git checkout
轻松切换分支:
git checkout master
git checkout develop
git checkout my_feature
要删除本地分支:
git checkout -d<local_branch>
使用 -D 参数强制执行删除。
如果要删除源上的远程分支,请执行以下操作:
git push origin :<remote_branch>
相关文章:
暂存文件只是为提交做准备。当你添加或修改一些文件时,你需要将这些更改放到 Git 的“暂存区”。”暂存区“就像一个盒子,你把东西放在里面,然后再把这个盒子放在床下,而你的床是一个储存库,里面存放着你以前放过的盒子。
要往暂存区添加文件,可以使用 git add
命令。可以暂存单个文件:
git add foo.js
或一次添加所有文件:
git add .
如果要从暂存区中删除某个文件:
git reset HEAD foo.js
或删除所有暂存文件:
git rest HEAD .
您还可以为命令创建别名,然后将其与 Git 一起使用:
git config --global alias.unstage 'reset HEAD'
git unstage .
如果您想查看哪些文件已被创建、修改或删除,可以通过 git status
查看。
git status
经常提交是一个好习惯。你总是可以在推送之前合并你的提交。在提交之前,需要将文件添加到暂存区。
commit 命令需要指定 -m 选项。
您可以像这样提交:
git commit-m “更新内容描述”
以下命令将撤消您最近的提交,并将这些更改放回暂存区,这样您就不会丢失任何内容:
git reset --soft HEAD~1
要完全删除提交并删除所有更改,请使用:
git reset --hard HEAD~1
假设您有4个提交,但您还没有向仓库推送任何内容,并且您希望将所有内容放入一个提交中,那么您可以使用:
git rebase -i HEAD~4
您将在每次提交的左侧看到“pick”一词。保留顶部的一个,并将所有其他的替换为“s”以进行挤压,保存并关闭文件。
然后打开另一个交互式窗口,您可以在其中将提交消息更新为一个新的提交消息。
在提交更改后,下一步是推送到远程仓库。
首次推送本地分支:
git push --set-upstream origin <branch>
之后,您可以使用
git push
要将本地分支推送到其他远程分支,可以使用:
git push origin <local_branch>:<remote_branch>
如果您必须撤消上一次推送,可以使用:
git reset --hard HEAD~1 && git push -f origin master
当使用 git fetch
时,git不会将其他提交与当前分支合并。如果您需要使存储库保持最新,但正在处理可能会在更新文件时损坏的内容,这一点尤其有用。
要将提交集成到主分支中,可以使用merge。
git fetch upstream
拉取只是执行一次提取,然后执行一次合并。当使用 git pull
时,git 会自动合并其他提交,而不是查看它们。如果不密切管理分支,可能会遇到冲突。
如果您有一个名为 my_feature 的分支,并且希望拉取该分支,可以使用:
git origin/my_feature
或者,如果你想把所有的东西和所有其他的分支都拉取出来
git pull
当运行 git merge
时,HEAD 分支将生成一个新的提交,保留每个提交历史。
重新基础将一个分支的更改重新写入另一个分支,而不创建新的提交。
git checkout my_feature
git merge master
或者使用 rebase
选项,您可以使用:
git checkout my_feature
git rebase master
git checkout master
git merge my_feature
有时您在一个分支上进行更改,并希望切换到另一个分支,但不希望丢失更改。
你可以把这些更改隐藏起来。执行如下命令可以在Git中隐藏更改:
git stash
现在,如果您想取消隐藏这些更改并将其带回工作目录,请使用:
git stash pop