玖叶教程网

前端编程开发入门

你应该知道的5个Git命令(git命令大全(非常齐全))

我们在日常工作中可能需要的一些有用的git命令 Git reset (soft and hard), revert, rebase, rebase -i and log。

我的例子很简单。我初始化了一个git项目,并添加了从1.txt到10.txt的文件,每个文件都添加在一个单独的git提交中。1.txt在提交1中,2.txt在提交2中,依此类推。

8d679fa (HEAD -> master) 108d679fa(HEAD->master)10
e7535c7 9
916c4d5 8
eb15d0d 7
94669d1 6
8300f81 5
617590b 4
f0b1c87 3
a62c707 2
2ad16a7 1

Git reset

当我们必须删除之前提交的内容时,Git reset是一个强大的命令。有两种类型的重置硬和软。

soft 当我们想要删除一组提交但取消其中所有更改时,我们使用git-soft。换句话说,您仍然有这些提交内容,但它们是未暂存的,因此您可以选择删除它们或更新它们,并将它们暂存以进行新的提交。

Example:
git reset 8300f81 将取消从10到6的提交,并且头位于指定的提交8300f8上

hard:
硬重置不提供进行重置更改的可能性;相反,它将显式地删除提交及其所有内容。

Example:
git reset 8300f81-hard 将删除从10到6的提交,并删除相关内容。现在航向8300f81。

git revert

不要被重置和恢复混淆,它们之间有区别。
想象一下这样一种情况,你做出了一些改变,然后你发现这些改变现在毫无价值,但你将来可能需要它们。你会怎么做?
你可以恢复它们。Revert可以删除不需要的更改,但同时,它可以保留包含这些更改的提交。Revert会自动创建一个不包含不需要的更改的恢复提交。

Example:
考虑到您对提交617590b不满意,同时希望将其记录在历史中。
所以您恢复了提交:git revert 617590b
它会打开一个终端屏幕,您可以在其中指定恢复消息。一旦完成,头将位于新的revert提交上,而旧的提交将保留在git历史中。

e6371ff (HEAD -> master) Revert "4"
8d679fa 10
e7535c7 9
916c4d5 8
eb15d0d 7
94669d1 6
8300f81 5
617590b 4
f0b1c87 3
a62c707 2
2ad16a7 1

git rebase

Rebase类似于merge,但其工作原理不同。它不是创建合并提交,而是通过将分支的基础从一个提交更改为另一个提交来“重写”历史。通过这种方式,它保持了一个平坦的历史,并消除了歧义。以下是我发现的最明显的说明,说明了Rebase和Merge之间的区别。

Merge vs Rebase

git rebase -i

当涉及到对git提交历史进行更改时,交互rebase是一个神奇的命令,比如编辑提交消息、将提交组合在一起或删除提交(下面的示例)。

git rebase-i 8300f81(提交5)。将打开您的终端,提交列表从提交10到提交6。在每次提交之前,您可以在多个选项之间进行选择,如pick、reword、fixup、crush、drop。一旦您对自己的选择感到满意,终端将自动关闭,并应用您的更改。

Interactive rebase screen example

git log

此命令提供所有git提交历史记录、提交哈希和消息。有助于跟踪您的项目,或者当您需要在其中一个git命令中使用提交哈希时。
多个标志可以与类似日志的--oneline(每行打印一个提交)、--all(所有分支)一起使用

git log --oneline --all

结论

在整个文章中,试图简化这些不同命令的作用以及它们的好处。希望这些例子很清楚,并帮助您选择所需的git命令。

除了常见的git命令(status、add、commit、pull和merge)之外,reset、revert、log和rebase对日常工作也很方便,让你对git更有信心。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言