git学习视频推荐:👉视频
一.git的工作框架
Git的三个主要工作区之间的文件关系是镜像关系。
Git的本地仓库由三个区域组成:工作区(工作目录)、暂存区(索引),以及版本库。工作区是持有实际文件的目录,用户可以在这里进行文件的编辑和修改。暂存区,也称为索引,是一个缓存区域,用于临时保存对文件的改动。版本库则是一个隐藏目录,位于工作区的.git文件夹中,它记录了Git版本库的状态,包括HEAD指向的当前版本。
在Git中,文件的变化是通过快照的形式进行记录的,而不是通过跟踪文件的差异。这意味着,每当有新的提交时,Git会记录当前文件状态的快照,而不是记录文件之间的差异。这种机制确保了工作区、暂存区和版本库中的文件保持镜像关系,即它们反映的是同一时刻的文件状态。
具体来说:
- 工作区:这是用户进行文件编辑和修改的地方,包含了实际的文件。
- 暂存区:也称为索引,它临时保存对文件的改动,准备提交到版本库。暂存区的变化可以通过
git add
命令进行更新。- 版本库:位于.git文件夹中,记录了Git版本库的状态,包括HEAD指向的当前版本。这个区域通过快照的形式记录文件的状态,确保了与工作区和暂存区的镜像关系。
此外,Git提供了一些命令(如
git reset
)来管理这三个区域的状态,但这些操作不会改变它们之间的镜像关系本质。例如,当使用git reset
命令时,可以选择性地撤销暂存区的更改,或者回退到之前的提交状态,但这不会改变工作区、暂存区和版本库之间的镜像关系12。
二.一些常见指令
注意:
cd ..//cd与..之间有空格
三.git项目创建与克隆
1.在桌面上建立一个名为mygit的文件夹
cd Desktop
mkdir mygit
2.在mygit里面创建一个仓库
cd mygit
git init
我们点进mygit文件夹会发现里面有一个.git文件,默认为隐藏
3.打开github,随便找一个项目,复制url
在git里面使用git clone+url来把项目复制进刚刚创建的文件夹mygit
复制好以后mygit文件夹内容如下,多了一个文件夹,说明复制成功
在这里推荐一个非常好用的软件UU加速器,可以使得github访问非常顺畅
四.git文件操作命令
操作 | 撤销 |
---|---|
git add file | git reset 重置暂存区内容,使得暂存区版本和仓库版本一致 git reset file 重置某一个文件的暂存状态,产生效果也就是把该文件从暂存区移除 |
修改了工作区文件 | git checkout -- files 用暂存区版本 覆盖 工作区文件 git checout HEAD -- files 用git仓库最近版本 覆盖 工作区文件 |
git commit | git reset --soft HEAD~1 撤销最近一次 commit 且不删除工作区改动 git reset --hard HEAD~1 撤销最近一次 commit 且强制同步工作区版本到这 commit 改动之前状态 |
例子:
1.在mygit中建立一个test.txt文件,用git status查看状态,刚添加进去的文件,都是Untracked状态
2.将mygit中的全部文件加入暂存区,使用命令git add .
3.移除暂存区中的文件,使用git rm --cached+文件名
4.添加单个文件进暂存区,git add+文件名
5.修改文件,查看有没有修改成功用checkout,若文件不在暂存区,前面是D,若是在暂存区但没有修改,不显示,若是修改了,前面是M。使用checkout命令以后,文件就从暂存区复制到工作区了。
五.忽略文件
参考资料:git操作命令
六.配置SSH公钥以及远程仓库
操作视频:操作视频
1)配置公钥
这里有些电脑用户目录下面没有.ssh文件,参照这篇博客👉找不到.ssh文件
简单来说,就是在用户目录下面打开git,然后输入 ssh-keygen -t rsa -b 4096 -C "邮箱"就可以生成.ssh文件了。
生成.ssh文件以后,用记事本打开.ssh文件中的id_rsa.pub复制里面的内容进gitee里面的公钥就ok了。
2)创建远程仓库
在gitee里面直接点击右上方的"+"来选择建立仓库。
将http复制,操作同三。这样远程仓库就克隆了一份放进了桌面建立的文件夹里,这被叫做当地仓库。
七.git与IDEA建立连接
操作视频:git连接IDEA
1.在IDEA中新建一个项目,将项目的地址设成桌面仓库所在文件夹的地址,简单说就是在桌面仓库所在文件夹里建立一个项目。
2.将当地仓库里的文件全部复制,覆盖新建的项目,就实现了git与IDEA的连接。
3.在IDEA的终端里输入git指令来控制项目里文件的提交与修改。具体git add .将项目里的文件全部添加到暂存区;将其提交到本地仓库使用git commit命令;将本地仓库的内容提交到远程仓库,使用git push命令。每次修改的修改信息设置可以用git commit -m "修改信息"来设置。