对于大多数人来说,学习 Git 并不容易,因为其拥有大量令人困惑的命令。因此,大多数人只学习 Git 的核心基础知识,例如添加和提交文件。不过,这只是我们可以使用 Git 完成的一小部分。
一、添加/提交所有
使用 Git 时最常见的事情之一是添加和提交一堆文件。执行此操作的标准方法通常是运行添加命令,然后执行提交。
1. git add .
2. git commit -m "Message"
上面代码是可以正常工作,但实际上我们可以将其合并为一个命令。
1. git commit -a -m "Message"
二、引用日志
另一个简单但有用的命令是 reflog引用日志。此命令可让你轻松查看本地计算机上最近的提交、拉取、重置、推送等。这是跟踪可能出现的问题的一个好方法,从而了解你做的什么操作导致这些问题。
1. git reflog
三、搜索日志
你还可以使用 log 命令来搜索代码中的特定更改。例如,当你想要知道“Hello, World!”字符串是什么时候添加到项目中的那个文件中去的,就可以进行搜索:
1. git log -S "Hello,World!"
四、还原
下面我们来看一个非常简单的命令,revert 命令允许我们撤消当前分支上的任何提交。
1. git revert 486bdb2
你需要做的就是将要恢复的提交传递给命令,它将撤消该提交的所有更改。但是要注意,这种方式只会撤消某次确切提交的更改。如果你对一个月前的提交进行还原,则不会撤消自该提交以来所做的所有更改,它只会撤消该确切提交中的更改。
另一个需要注意的重要事项是使用 revert 实际上并不会删除旧的提交。相反,它会创建一个新提交,以撤消旧提交的所有更改。这种方式还是比较友好的,因为它将保留你存储库的历史记录。
一个常见的技巧是恢复最近的提交,可以使用以下命令完成
1. git revert HEAD
五、暂存
场景一: 当正在dev分支上开发某个项目,这时项目中出现一个bug,需要紧急修复,但是正在开发的内容只是完成一半,还不想提交,这时可以用git stash命令将修改的内容保存至堆栈区,然后顺利切换到hotfix分支进行bug修复,修复完成后,再次切回到dev分支,从堆栈中恢复刚刚保存的内容。
场景二:由于疏忽,本应该在dev分支开发的内容,却在master上进行了开发,需要重新切回到dev分支上进行开发,可以用git stash将内容保存至堆栈中,切回到dev分支后,再次恢复内容即可。
总的来说,git stash命令的作用就是将目前还不想提交的但是已经修改的内容进行保存至堆栈中,后续可以在某个分支上恢复出堆栈中的内容。这也就是说,stash中的内容不仅仅可以恢复到原先开发的分支,也可以恢复到其他任意指定的分支上。git stash作用的范围包括工作区和暂存区中的内容,也就是说没有提交的内容都会保存至堆栈中。
1. git stash
这个简单的命令将暂存你所有的代码更改,但实际上并不提交它们。相反,它将它们本地存储在你的计算机上的一个储藏室中,以便后续可以访问。现在你可以着手修复紧急错误,一旦完成,就能够从存储中弹出你的更改从而继续工作。
1. git stash pop
此命令将从存储中获取所有更改并将它们应用到你当前的分支,并从存储中删除代码。
六、破坏局部变化
有时进行更改并意识到你需要废弃迄今为止所做的一切。如果你还没有提交,这通常没什么大不了的,但是如果你进行了多次提交,则很难完全删除所有更改。这就是 reset 命令的用武之地。通过运行以下命令,你可以将本地分支上的所有更改清除到远程分支中的所有更改。
1. git reset --hard origin/main
上面的命令说要强行删除当前分支上的所有本地更改,并将它们替换为远程主分支中的代码。请务必注意,这将删除你所做的所有本地更改,因此当你真的想删除所做的所有更改并需要重新开始时才这样做。
Git命令还有很多很多,希望上面总结的命令能够对你有所帮助!
感谢你坚持看到这里!