Git 在我们作为软件工程师的日常工作中扮演着重要的角色,尤其是在团队中工作。无论规模如何,它都可以帮助开发人员在项目上进行协作。有很多可用的 git 命令,其中一些开发人员每天都在使用,而另一些则没有广泛使用,但值得了解它们的存在。
在本文中,我们将看到一些不需要知道但肯定会帮助我们成为 git 大师的命令。
在一个命令中添加和提交
git 中最常用的命令之一是git add,其次是git commit。
git add .
git commit -m "提交信息"
大多数时候会想要添加所有更改的文件。我们可以使用-am标志将它们组合成一个命令,而不是编写这两个命令,这同时执行git add 。和git commit。
git commit -am "提交信息"
从另一个分支复制更改
在某些情况下,我们必须向多个分支添加更改,例如,如果有两个版本并且我们都支持它们,我们应该向两个分支提交更改。
让我们有两个分支,branchA和 bra n chB。我们可以使用git rebase命令,而不是手动在两个分支中提交。
git checkout branchA
git rebase branchB
将会发生的是branchA看起来像是从branchB分支出来的。
将更改添加到您的上次提交
我们都处于忘记了一个小改动的情况,为此我们必须做出新的提交。当这个变化不是很大时,我们可以使用--amend标志将它添加到我们的最后一次提交中。
git add .
git commit --amend --no-edit
使用--no-edit标志允许我们在不修改提交消息的情况下将更改应用到上次提交。
从提交中删除文件
如果我们想删除某个已提交到分支的文件,我们可以使用git reset命令。
git reset --soft HEAD^
这会将提交的文件带到暂存区,然后我们可以准确指定要删除的文件。
git reset HEAD <文件名>
查找有错误的提交
您是否遇到过引入错误的情况,并且您必须搜索该错误出现的时间和具体更改内容?如果你当时知道这个命令,这个过程会更快更容易。使用 git bisect 我们可以搜索一个创建错误的提交,首先告诉它一个有错误的“坏”提交和一个没有错误的“好”提交。
git bisect start
git bisect bad
git bisect good v.11.0.1-rc2
完成后,我们应该使用git bisect reset来清理状态并返回原始 HEAD。
git bisect reset
像图表一样查看您的历史记录
如果我们想像图表一样查看我们的 git 历史记录,可以使用一个命令轻松完成。
git log --all --decorate --oneline --graph
您可能不会每天都使用 git log,但是您可以使用一个简单的缩写来记住该命令:
“A DOG” = git log - A ll - D ecorate - O neline - G raph
获取分支之间的差异
如果我们想查看两个分支之间有什么区别,可以使用git diff命令。
git diff master
如果我们不想看到确切的差异,而只想看到文件名,我们可以添加--name-only标志。
显示更改特定文件的提交
在某些情况下,我们希望查看特定文件的所有更改,这可以使用带有--follow标志的git log来完成。
git log --follow -- <文件名>
还原所有本地更改
根据您的场景,有不同的方法可以删除本地更改。
如果您想恢复对工作副本的更改,请使用:
git restore .
如果要删除所有未推送的提交以供 master 使用:
git reset
如果您想通过提交恢复更改,请使用:
git revert <commit>
如果要删除未跟踪的文件或目录或使用:
git clean -f or git clean -fd
请继续关注第 2 部分,我们将深入了解 git。