开发者应该知道的 50 条最实用的 Git 命令

举报
Ocean2022 发表于 2022/04/19 15:55:54 2022/04/19
【摘要】 Git是一个分布式版本控制系统,可以帮助开发人员在任何规模的项目上进行协作。Linux内核的开发人员Linus Torvalds在2005年创建了Git,以帮助控制Linux内核的开发。

什么是分布式版本控制系统?

分布式版本控制系统是帮助您跟踪您对项目中的文件所做更改的系统。

此更改历史记录保存在本地机器上,在出现问题时,您可以轻松地恢复到项目的前一个版本。

Git使协作变得容易。团队中的每个人都可以在自己的本地机器上保留正在开发的存储库的完整备份。然后,多亏了BitBucket、GitHub或GitLab这样的外部服务器,他们可以安全地将存储库存储在一个地方。

这样,团队的不同成员就可以在本地复制它,每个人都可以清楚地了解整个团队所做的所有更改。

Git有许多不同的命令可以使用。我发现这50种方法是我最常使用的(因此也是最有助于记忆的)。

所以我把它们写了下来,并认为与社区分享它们会很好。我希望你发现它们有用。

如何检查你的Git配置:

下面的命令返回关于git配置的信息列表,包括用户名和电子邮件:

git config -l

如何设置Git用户名:

使用下面的命令你可以配置你的用户名:

git config --global user.name "your username"

如何设置你的Git用户邮箱:

这个命令允许您设置在提交中使用的用户电子邮件地址。

git config --global user.email "xxx@example.com"

如何在Git中缓存你的登录凭证:

您可以将登录凭据存储在缓存中,这样就不必每次都输入它们。只需使用这个命令:

git config --global credential.helper cache

如何初始化一个Git repo:

一切都从这里开始。第一步是在项目根目录中本地初始化一个新的Git repo。你可以使用下面的命令:

git init

如何在Git中添加一个文件到暂存区:

下面的命令将向暂存区域添加一个文件。只需将filename_here替换为要添加到暂存区域的文件的名称。

git add filename_here

如何在Git中添加暂存区中的所有文件:

如果要将项目中的所有文件添加到暂存区域,可以使用通配符‘.’。每一个文件都会为你添加。

git add .

如何在Git中只添加某些文件到暂存区域

使用下面命令中的星号,您可以在暂存区域中添加所有以’fil’开头的文件。

git add fil*

如何在Git中检查存储库的状态:

该命令将显示当前存储库的状态,包括暂存、未暂存和未跟踪的文件。

git statu

如何在Git的编辑器中提交更改:

这个命令将在终端中打开一个文本编辑器,您可以在其中写入完整的提交消息。

提交消息由更改的简短摘要、空行和之后的更改的完整描述组成。

git commit

如何在Git中通过消息提交更改:

您可以添加提交消息,而无需打开编辑器。这个命令只允许您为提交消息指定一个简短的摘要。

git commit -m "your commit message here

如何在Git中提交更改(并跳过暂存区域):

通过使用-a和-m选项,您可以使用单个命令添加和提交跟踪文件。

git commit -a -m"your commit message here"

如何查看Git中的提交历史:

这个命令显示当前存储库的提交历史:

git log

如何查看你的提交历史记录,包括Git中的更改:

这个命令显示提交的历史,包括所有的文件和它们的更改:

git log -p

如何在Git中看到一个特定的提交:

这个命令显示一个特定的提交。

将commit-id替换为您在提交日志中单词commit之后找到的提交id。

git show commit-id

如何查看Git的日志统计:

这个命令将导致Git日志显示关于每次提交更改的一些统计信息,包括更改的行和文件名。

git log --stat

如何在Git中使用diff查看在提交之前所做的更改:

您可以将文件作为参数传递,这样就只查看特定文件上的更改。

默认情况下,git diff只显示未暂存的更改。

我们可以使用 --staged 标志调用diff来查看任何阶段性更改。

git diff
git diff all_checks.py
git diff --staged

如何使用“git add -p”查看更改:

该命令将打开一个提示符,询问您是否要进行修改,并包含其他选项。

git add -p

如何从Git当前的工作树中删除跟踪文件:

此命令需要提交消息来解释文件被删除的原因。

git rm filename

如何在Git中重命名文件:

该命令对更改进行分级处理,然后等待提交消息。

git mv oldfile newfile

如何忽略Git中的文件:

创建一个.gitignore文件并提交它

如何在Git中恢复未暂存的更改:

git checkout filename

如何恢复Git中的阶段性更改:

您可以使用-p选项标志来指定您想要重置的更改。

git reset HEAD filename
git reset HEAD -p

如何在Git中修改最近的提交:

git commit -amend允许您修改和添加最新提交的更改。

git commit -amend

! !注意! !用amend修复本地提交非常棒,你可以在修复后将其推到共享存储库中。但是您应该避免修改已经公开的提交。

如何在Git中回滚最后一次提交:

git revert将创建一个新的提交,它与给定提交的所有内容相反。

我们可以像这样使用head别名来恢复最新的提交:

git revert HEAD

如何在Git中回滚旧的提交:

您可以使用它的提交id恢复旧的提交。这将打开编辑器,以便您可以添加一个提交消息。

git revert comit_id_here

如何在Git中创建一个新的分支:

默认情况下,您只有一个分支,即main分支。使用这个命令,您可以创建一个新的分支。Git不会自动切换到它——您需要使用下一个命令手动切换。

git branch branch_name

如何在Git中切换到新创建的分支:

当你想使用一个不同的分支或者一个新创建的分支时,你可以使用这个命令:

git checkout branch_name

如何在Git中列出分支:

可以使用git branch命令查看所有创建的分支。它将显示所有分支的列表,并用星号标记当前分支,并用绿色高亮显示。

git branch

如何在Git中创建分支并立即切换到它:

在单个命令中,您可以立即创建并切换到一个新的分支。

git checkout -b branch_name

如何在Git中删除分支:

当你完成了一个分支的工作并合并了它,你可以使用下面的命令删除它:

git branch -d branch_name

如何在Git中合并两个分支:

要将你当前所在分支的历史与branch_name合并,你需要使用下面的命令:

git merge branch_name

如何在Git中以图形形式显示提交日志:

我们可以使用–graph来获取以图形形式显示的提交日志。同时,

–oneline将把提交消息限制为一行。

git log --graph --oneline

如何在Git中显示提交日志的所有分支:

执行与上面命令相同的操作,但适用于所有分支。

git log --graph --online --all

如何在Git中中止合并冲突:

如果你想扔掉一个合并并重新开始,你可以运行以下命令:

git merge --abort

如何在Git中添加远程存储库

该命令将远程存储库添加到本地存储库(只需用远程repo URL替换https://repo_here)。

git add remote https://repo_here

如何在Git中查看远程url:

使用这个命令可以查看本地存储库的所有远程存储库:

git remote -v

如何在Git中获取远程repo的更多信息:

只需将origin替换为所获得的远程服务器的名称

运行git remote -v命令。

git remote show origin

如何在Git中推送更改到远程repo:

当你的所有工作都准备好保存到远程存储库时,你可以使用下面的命令推送所有更改:

git push

如何从Git的远程repo中获取更改:

如果其他团队成员正在处理您的存储库,您可以使用以下命令检索对远程存储库所做的最新更改:

git pull

如何检查Git跟踪的远程分支:

这个命令显示了Git正在跟踪当前存储库的所有远程分支的名称:

git branch -r

如何在Git中获取远程repo更改:

这个命令将从远程repo下载更改,但不会在本地分支上执行合并(git pull会这样做)。

git fetch

如何在Git检查当前提交日志的远程repo

每次提交之后,Git都会建立一个日志。使用这个命令可以找到远程存储库日志:

git log origin/main

如何在Git中合并远程repo和本地repo:

如果远程存储库有你想要与本地合并的更改,那么这个命令会帮你完成:

git merge origin/main

如何在Git中获取远程分支的内容而不自动合并:

这使您可以在不将任何内容合并到本地分支的情况下更新远程。你可以调用git merge或git checkout来进行合并。

git remote update

如何在Git中推送一个新的分支到一个远程repo:

如果要将分支推入远程存储库,可以使用下面的命令。只需要记住添加-u来创建上游分支:

git push -u origin branch_name

如何在Git中删除远程分支:

如果你不再需要远程分支,你可以使用下面的命令删除它:

git push --delete origin branch_name_here

如何使用Git rebase:

可以使用git rebase将已完成的工作从一个分支转移到另一个分支。

git rebase branch_name_here

如果操作不当,Git Rebase会变得非常混乱。在使用这个命令之前,我建议您重新阅读官方文档(https://git-scm.com/book/it/v2/Git-Branching-Rebasing )

如何在Git中交互式地运行rebase:

您可以使用-i标志交互式地运行git rebase。

它将打开编辑器并显示一组您可以使用的命令。

git rebase -i master
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit

如何在Git中强制push请求:

这个命令将强制一个推送请求。这对于pull请求分支通常是好的,因为其他人不应该克隆它们。但这不是你想用公共仓库来做的事。

git push -f

结尾

这些命令可以显著提高您在Git中的工作效率。你们不需要全部记住——这就是我写这个小抄的原因。把这一页加为书签,以便将来参考,如果你愿意也可以打印出来。

感谢你的阅读!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。