赞
踩
git下载(阿里云):
https://www.alipan.com/s/R788JQfh6Ah
window
+R
打开指令运行框,输入指令cmd
打开系统控制台
输入git -v
,如果返回git版本号,说明我们已经安装成功(如果你在VScode终端)。
在Git Bash,我们即可以通过指令对git进行操作。
相比于在文件中打开Git Bash,我更加推荐在Vs code中打开集成的Git Bash
Ctrl
+J
打开Vs code终端,再新建一个Git Bash窗口,这样我们就可以在Vs code操作Git Bash了。
配置用户:git config --global user.name
"Xiaojia"
配置邮箱:git config --global user.email
“qq13079055521@qq.com”
查看已经配置好的用户和邮箱:git config --list
如果这里信息多的话,可以回车往下查看被省略的信息,如果像退出了,可以按
Q
,或者重新打开Git Bash控制台。
暂存、工作区命令
命令 | 作用 |
---|---|
git -v | 查看 git 版本 |
git init | 初始化 git 仓库 |
git add 文件标识 | 暂存某个文件 |
git add . | 暂存所有文件 |
git commit -m '说明注释' | 提交产生版本记录 |
git status -s | 查看文件状态 |
git ls-files | 查看暂存区文件列表 |
git restore 文件标识 | 从暂存区恢复到工作区(如果文件标识为 . 则恢复所有文件) |
在demo输入:git init
,文件后面出现小U
,也在文件夹中,可以看到git文件夹
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/e03f6de87fa84a66a1fca54f45d1cdf7.png#pic_center = x500)
工作区
:实际开发时操作的文件夹
暂存区
:保存之前的准备区域(暂存改动过的文件)
版本库
:提交并保存暂存区中的内容,产生一个版本快照
命令 | 作用 |
---|---|
git add + 文件名 | 暂存指定文件 |
git add . | 暂存所有改动的文件(推荐使用) |
git commit -m + “注释说明” | 提交并保存,产生版本快照 |
git add .
,暂存所有改动的文件git ls-files
,查看暂存区已存的文件(这里我新建了一个demo文件并暂存了)git commit -m "新建了一个index.html文件"
(这里我将提交的备注用单引号,然后提交成功,但是git返回的信息在编译时乱码了,后来我改成双引号再提交,因为,没有任何修改所以git返回了提升推荐写提交的备注时用双引号
)git 文件 2 种状态:
未跟踪:新文件,从未被 Git 管理过
已跟踪:Git 已经知道和管理的文件
文件状态 | 概念 | 场景 |
---|---|---|
未跟踪(U) | 从未被 Git 管理过 | 新文件 |
新添加(A) | 第一次被 Git 暂存 | 之前版本记录无此文件 |
未修改(’ ') | 三个区域统一 | 提交保存后 |
已修改(M) | 工作区内容变化 | 修改了内容产生 |
git status -s
查看文件状态,显示文件状态标识为??
,文件后面有U
标识,说明该文件处于未跟踪(U)状态。
git add .
,暂存所有改动的文件,发现U
标识变为A
标识), 再次使用git status -s
查看文件状态,显示文件状态标识为A
,说明该文件处于新添加(A)状态。
4. 我们给新增的css添加内容(这里给index.html添加了a标签的样式),再次使用git status -s
查看文件状态,显示文件状态标识为AM
,说明该文件处于新添加(A)且已修改(M)状态。
5. AM
状态说明,文件还在工作区,没有将修改保存到暂存区,我们使用git add .
,暂存所有改动的文件,并且再次使用git status -s
查看文件状态,显示文件状态标识为A
,说明改动的文件成功存到暂存区。
6. 现在我们再将暂存区保存成功的文件存入版本库:git commit -m "添加了index.css文件"
,再使用git status -s
查看文件状态,但是并不显示,而且文件名后面的标识符也消失了,说明文件处于未修改(’ ')状态。
M
,使用git status -s
查看文件状态,显示文件状态标识为AM
,说明文件处于已修改(M)状态。暂存区的作用:临时恢复代码内容,与版本库解耦
现在我们来尝试对暂存区进行操作:
让暂存区文件覆盖工作区文件(从暂存区恢复):
git restore
git ls-files
,查看暂存区已存的文件git restore
+文件路径(注意地址不要写错),文件就从从暂存区恢复回来了。
从暂存区移除文件:
git rm --cached
,移除后文件变为未跟踪(U)状态(对未跟踪(U)状态的操作可以参考上一节)
git rm --cached
+文件路径,移除css在暂存区对应的暂存文件git ls-files
,查看暂存区已存的文件发现css暂存文件已被移除,文件变为未跟踪(U)状态。版本、分支命令
命令 | 作用 |
---|---|
git log --oneline | 查看已有版本库中的版本 |
git reset 版本号 + 选项 | 切换版本代码到暂存区和工作区(1.--soft 2. --hard 3.mixed ) |
git branch 分支名 | 创建分支 |
git branch | 查看本地分支 |
git branch -d 分支名 | 删除分支(请确保记录已经合并到别的分支下,再删除分支) |
git checkout 分支名 | 切换分支 |
git checkout -b 分支名 | 创建并立刻切换分支 |
git merge 分支名 | 把分支提交历史记录合并到当前所在分支 |
查看提交历史:git log --oneline
切换版本(从版本库中恢复):
git中回退版本需要使用到版本号,版本号又被称为标签,是版本库的快照,作为不同版本相互区别的主要方式,虽然是版本库的快照,但其实它就是指向某个commit的指针。
在上图中,70a5981,d57f5cf都是对应版本的版本号。
回退指令有以下3种:
git reset --soft
+ 版本号(其他文件未跟踪)
soft是"软"的意思,所以这个切换指令会将版本恢复到工作区和暂存区,但是不会删除已有文件,已有文件都会变为未跟踪(U)状态。
git reset --hard
+ 版本号
hard是"硬"的意思,所以直接把版本库中的版本内容直接将工作区和暂存区已有文件覆盖,已有文件都会变为未跟踪(U)状态。
git reset --mixed
+ 版本号 (与 git reset 等价)
mixed是"混合"的意思,这个指令等效于git reset
,将版本库中的版本内容覆盖到暂存区(工作区不做修改)
在实际操作中
--hard
,使用较多
注意,一旦进行版本回退,被覆盖的文件就不能恢复,所以在进行版本回退之前,我们必须确认被覆盖文件是不再需要的,或者更换回退指令的回退方式。
虽然有暂存区缓存,我们有时还是难以避免地提交的没有什么实际意义的版本到版本库,这时我们需要将版本库中的版本删除,这里我们给出一种删除特点版本的方法。
删除版本:git rebase -i
+ 版本号
现在我们新建一个demo.html
先输入git add .
将demo.html添加到工作区,再输入git commit -m "添加了dome.html"
添加了demo.index提交到版本库
输入git log --oneline
, 查看已有版本库中的版本
输入git rebase -i
+ 要删除的版本的前一个版本的版本号(例如:我们要删除1d29f32,我们就要输入git rebase -i 70a5981
)
输入指令后我们进入了vim编辑器,我们按i
可以进入插入模式,再将第一行的pick
改为drop
,按左上角Esc
,再依次输入:
,w
,q
及可以保存更改并退出。
5. 再次输入git log --oneline
,发现5e3f674版本已经被删除。
在git管理的文件夹内,有些文件我们并不需要git管理,这时我们需要配置忽略文件。
示例:例我们在文件夹page下创建一个password.md文件这个makedown文件,假设我们不想要这个文件被git管理。
项目根目录新建 .gitignore
文件,如果vsvode里面创建文件不成功,也可以到该文件夹里面创建文本文件,再将文本文件的文件名和后缀删掉,改为 .gitignore
填入相应配置来忽略指定文件,输入password.md
并保存,发现password.md文件后的git管理的状态标识消失,而且文件名由高亮变得暗淡;说明password.md已经成功被git忽略。
拓展:
*
,例如写入*.md
,则忽略以.md结尾的文件(忽略md格式的文件)。作用分支有利于多人协同开发时的代码版本管理。
git branch new1
,创建一个分支new1git checkout new1
,切换到new1分支上去(高亮行的最后的小括号里就是我们所在的分支,默认我们在主分支(master),现在我们切换到了new1分支)。git branch
,可以查看到分支new1已经创建成功现在假设我不小心创建了一个new2分支,我现在要删除它,输入git branch
查看已有分支,再输入git branch -d new2
,删除new2分支。
这里有一点需要注意,我们不能在该分支在删除该分支,例如我们不能在new2分支下删除new2分支,而要先切换到其他分支下(例如new1分支),再删除new2分支。
我们在new1分支下的css文件添加一个a标签的样式(master分支css文件已有p)再存入暂存区,提交,现在,我们尝试将,这两个分支合并。
git merge new1
,命令 | 作用 |
---|---|
git remote add + 远程仓库别名:远程仓库地址 | 添加远程仓库地址 |
git remote -v | 查看远程仓库地址 |
git remote remove + 远程仓库别名 | 删除远程仓库地址 |
git pull + 远程仓库别名:分支名 | 拉取 |
git push + 远程仓库别名:分支名 | 推送 |
git pull --rebase + 远程仓库别名:分支名 | 拉取合并 |
git clone + 远程仓库地址 | 克隆 |
码云官网:https://gitee.com/chinaio
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。