【二、git的常见命令】

前言

上篇博客我们已经通过图形化操作简单了解了git与github的使用,其中我推荐使用github desktop ,省力稳定还直观。

本地创建仓库(初始化)

上一节内容中我们最开始是在github中新建了一个仓库,然后把他克隆到本地之后,在本地修改编辑最后push到远程的,但是一般的开发我们肯定是喜欢先在本地建立好文件夹,然后再去修改内容推送到远程仓库,这样才比较符合我们用户的使用习惯。

注意 ,虽说在本地建立仓库之后还是得要在github网页中建立一个远程仓库与之对应,但是可以省去一步从远程仓库克隆到本地的操作。反正我个人是挺喜欢先在本地建立好一个大致的框架然后add、commit、push什么的。
因此这回以本地建立仓库为起点进行介绍。

在当前目录右键git bash here 打开命令行

参考视频

在这里插入图片描述

git init创建本地仓库

在这里插入图片描述
初始化完成之后就会出现.git文件夹

添加文件,编写内容

在仓库初始化好后建立一个文件,添加内容,对应实际开发中的代码

在这里插入图片描述

git status查看状态

建立好之后,选择使用git status命令查看文件状态
在这里插入图片描述
发现刚刚建立的文件并没有被git追踪管理,提示使用git add提交到暂存区

git add

git add 文件名.后缀名

使用上面这条命令来将文件提交到暂存区

在这里插入图片描述

git commit

git commit -m  提交信息,对应一个版本

使用上面的命令将暂存区提交到本地仓库

创建远程仓库

本地仓库有了,现在得要有个远程仓库来对应本地仓库,否则Push都无的放矢。
刚刚搜了一下,无法通过git bash 来在远程建立仓库,就连github desktop也不行,可能毕竟设置一个仓库还是有许多配置和安全性上的考虑吧。所以我们还得在远程建立一个对应本地的仓库,我建议是和本地仓库保持同名,以免混乱。

建立好远程仓库之后,我在本地而不是通过命令行的方式,把原来叫做git命令行操作.md的文件删掉了,转而添加了一个文件README.md,这样比较符合习惯,但是当我用git status的时候出现了一个问题

git rm --cached 将文件的删除操作添加到暂存区

在这里插入图片描述
这是因为我直接删掉本地的文件,Git会显示这个文件为“Changes not staged for commit”,意味着它检测到了删除操作,但还没有添加到暂存区。如果你在本地删除了一个文件,但之后又希望Git跟踪这个删除操作就要用git rm --cached [文件名]命令将文件的删除操作添加到暂存区。这个命令会从暂存区中删除文件,但不会从你的工作目录中删除它。由于你已经从工作目录中删除了文件,这个命令实际上会告诉Git你想要删除这个文件,并准备提交这个更改。
执行完这个命令之后再查看git status,显示正常了
在这里插入图片描述
所以我们日常删除文件还是通过命令行来操作(这样慎重一点)或者删除之后再add(这样方便一点)

git rm 从你工作目录删除文件,并将其添加到暂存区,准备提交

git rm [文件名]
接下来,使用git commit命令来提交这个删除操作即可


注意git rm 和 git rm --cached的区别

  • git rm --cached

命令本身不会从你的本地文件系统中删除文件。这个命令的目的是告诉Git,你想要删除这个文件,并且这个删除操作应该被记录在Git的暂存区中,准备在下一次提交时反映出来。

这里是git rm --cached命令的作用:

它从Git的暂存区(staging area)中删除文件,而不是从你的工作目录(working directory)中删除。
如果文件已经被你在本地删除了,使用git rm --cached [文件名]会告诉Git,这个文件已经被删除,并且这个删除操作应该被包括在下一次提交中。

  • git rm [文件名]命令会执行以下操作

从工作目录中删除文件:这个命令会从你的本地文件系统中删除指定的文件。

从暂存区中删除文件:同时,这个命令也会将文件从Git的暂存区中删除,这样Git就不会再跟踪这个文件了。

执行这个命令后,当你运行git status时,Git 不会再提示该文件为未追踪(untracked)或未暂存的更改(unstaged changes),因为这个文件已经被完全从Git的跟踪列表中移除了。

然后我又建立了一个新文档,并且add进了暂存区
使用git rm的时候又报错了
因为

error: the following file has changes staged in the index:
    新建文本文档.txt
(use --cached to keep the file, or -f to force removal)

这意味着我尝试删除的文件 新建文本文档.txt 在Git的暂存区(index)中已经有更改被暂存了。这通常发生在以下几种情况:

  • 之前对文件做了修改,并使用了 git add [文件名] 将这些更改添加到了暂存区。
  • 或者,文件已经被删除,但使用 git add [文件名] 将删除操作暂存了。

Git不允许直接删除一个已经被暂存更改的文件,因为这可能会导致版本控制的状态混乱。你要先解决这些暂存的更改,然后再删除文件。

这里有几种方法来解决这个问题:

使用 --cached 选项
如果你想要删除文件,但保留文件在工作目录中,可以使用 --cached 选项。这会从暂存区中删除文件,但不会影响工作目录中的文件:

git rm --cached [文件名]
使用 --force 或 -f 选项
如果你确定要删除文件,并且不介意丢失任何暂存的更改,可以使用 --force 或 -f 选项强制删除文件:

git rm -f [文件名]
这会从工作目录和暂存区中删除文件。

另外

如果你之前已经使用 git rm [文件名] 将文件的删除操作暂存了,但你现在改变主意不想删除文件,可以使用以下命令撤销这个暂存的删除:

git reset HEAD [文件名]
然后,你可以将文件重新添加到暂存区:

git push

修改完成之后可以推送到远程仓库了
以下几种方式
在这里插入图片描述

第一种 git push 仓库地址名称 分支名称

git push  https://github.com/Levangogo/GitBash.git  main

注意现在github网站上创立仓库的时候建立的默认分支叫main了,而不是master,据说是因为政治原因。
所以这里要注意用main

第二种 git remote add 远程仓库别名 远程仓库地址

在之前的Push操作中,需要把仓库的地址给复制进来,比较麻烦,使用git remote add的方式可以给远程仓库取个别名

git remote add origin https://github.com/Levangogo/GitBash.git

这样以后就可以使用别名指代仓库地址名了
经过add和commit操作之后,就可以push了

git push origin main

在这里插入图片描述

远程协作开发之git pull

如果甲上传了代码之后邀请乙进行协同开发,乙在推送代码到仓库后,甲可以通过git pull命令拉取仓库分支的最新版本

git pull 仓库地址 分支名

而且拉取操作是读操作,不需要输入密码。

git pull和git clone的区别

git clone是完全克隆远程仓库,是在没有本地仓库的前提下进行的,只需要第一次加入项目开发的时候用一次就好了,后续就不用了

在后续中如果要拉取远程仓库的代码只需要pull就好了

:如果本地仓库的版本比远程仓库的版本低的话,需要先从远程仓库pull最新版本修改之后才能push提交代码。

SSH免登录

一般来说使用github常常需要使用账户密码,但是windows10系统自动保存了下来,而使用SSH就可以免登录。有兴趣的同志可以看一下这个视频,其中RSA非多称加密算法是基于费马大定理,有关于数论的知识,非常有趣。

git忽略清单

在这里插入图片描述

建立一个.gitignore文件,在里面写上需要忽略的文件或者文件夹就可以了,之后就可以把其他所有的文件和文件夹统一add进暂存区 通过 git add .这个命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值