胡豆秆

个人博客

欢迎来到我的个人博客~


git常用命令

  一些git常用的命令,以下都是我作为一个初学者的个人理解

git init

​ 将当前文件夹(之后将这个文件夹称为工作目录)创建为一个git仓库,创建之后就会在当前目录生成一个.git的文件夹。

git status

​ 查看工作目录中的修改。还未add到暂存区的为红色,已经add了的为绿色。

​ 新建一个文本文件1.txt,git status 显示为红色,说明还未提交到暂存区。

git add

​ 将所做修改添加到暂存区。git add .为添加所有,git add <文件名> 为添加单个文件。

git commit

​ 将暂存区的文件添加到git仓库(本地)。git commit -m “提交说明”。

​ 在commit之后,本地git仓库就会与工作目录同步,这时git status就没有任何变化。

git diff

​ 查看某个文件在暂存区与工作目录的区别(查看修改)。git diff <文件名>

​ 在1.txt中添加内容:123123 。已经add到暂存区的文件则无法查看到修改(因为该文件已经和暂存区相同)。

git checkout

​ 与git add 相反,将暂存区的内容同步到工作目录。

​ 之前在1.txt中添加了内容,但还未添加进暂存区(这时暂存区中的该文件还是为空)。这时 git checkout <1.txt> (git checkout . 为全部同步) 会将暂存区的内容同步到工作目录(即该文件内容重新变为空)。

git log

​ 查看提交日志。git log 查看全部,git log -数字 查看指定条数(如git log -2,即查看两条从新到旧)。

​ 在1.txt中添加内容:123123 。add 再commit添加到git库(提交说明为123123)。

​ 将1.txt内容修改为:456465 。也添加到git库(提交说明为456456)。

​ 将1.txt内容修改为:789789 。也添加到git库(提交说明为789789)。

​ 查看提交日志git log。

git reset

​ 将工作目录回退到某个提交,该提交之后的提交都会消失。

​ git reset –soft 将暂存区回退到该提交,并**不会修改工作目录的内容**。如:git reset --soft 23882f815b785e5bbd953689fffc04f5c75187a6 表示将git库回退到commitid为23882f815b785e5bbd953689fffc04f5c75187a6的那次提交(即回退到在1.txt中添加123123时)。这时暂存区中文件内容为:123123 而本地还是789789。注意此时**git status时该文件显示为绿色**。

​ 此时使用reset再checkout,即可将该暂存区的内容同步回1.txt(即恢复到123123)。

​ 在使用了reset后,之前提交的456456和789789两次提交都已经消失。

​ git reset **默认为 --mixed**(即git reset --mixed )将暂存区回退到该提交,并**不会修改工作目录的内容**。如:git reset 23882f815b785e5bbd953689fffc04f5c75187a6 表示将git库回退到commitid为23882f815b785e5bbd953689fffc04f5c75187a6的那次提交(即回退到在1.txt中添加123123时)。这时暂存区中文件内容为:123123 而本地还是789789。注意此时**git status时该文件显示为红色**。

​ 这时直接git checkout . 即可将该文件内容恢复到该次提交(即恢复到123123)。

​ git reset –hard 将暂存区回退到该提交,并**修改工作目录的内容**。如:git reset --hard 23882f815b785e5bbd953689fffc04f5c75187a6 表示将git库回退到commitid为23882f815b785e5bbd953689fffc04f5c75187a6的那次提交(即回退到在1.txt中添加123123时)。这时暂存区中文件内容为:123123 本地也是123123。此时git status为空。

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦