git学习
Last updated on 7 months ago
本地仓库
获取本地仓库
新建目录,右键进入git bash命令行
输入
1 |
|
就可以将当前目录初始化为一个git仓库,成功后会多出一个.git
文件夹(有些时候会隐藏,在资源管理器的查看中设置)
仓库基本提交逻辑
在我们提交修改时候,文件会经过三个区域工作区(workspace)、暂存区(index)、仓库(respository)
当我们在工作区新建/修改文件时,文件会进入未跟踪/未暂存状态,通过git add
指令,将这两种状态添加到暂存区,状态变为已暂存,最后通过git commit
提交到仓库成为一次提交记录
可以通过git status
查看文件的提交状态
仓库的基本操作
查看文件提交状态
在工作目录下新建一个文件,进入git bash输入
1 |
|
可以看到文件的提交状态
1 |
|
显示为Untracked
为跟踪
提交
在查看文件状态中,我们新建了一个文件,他的状态为Untracked
我们可以add
文件名将他添加到暂存区
1 |
|
也可以用通配符.
将所有文件添加到暂存区
1 |
|
接着通过commit
提交到仓库
1 |
|
最后通过log
查看日志
1 |
|
出现了提交记录
查看记录
可以通过log
查看
1 |
|
log还有很多个参数比如--all
等
下面是常用的一个
1 |
|
意思为:提交信息显示一行,简短模式,以图形式显示
版本切换与回退
在log中我们可以看到很多commitID,可以在git bash中选中,git会自动复制,在使用鼠标中键粘贴,不需要是完整的,在简短模式下显示的后7位也行
1 |
|
比如我现在有两个提交
1 |
|
现在我希望回退到修改前,也就是我刚提交“我的注释”这个时候,那么就reset + 我的注释的id
1 |
|
再次查看,发现提交的修改没了,只有一个“我的注释”,文件里新加的内容也没了
回退了,但是并没有删除,我们还是可以通过“修改”的ID重新找回
1 |
|
想要找到这个ID可以用reflog
1 |
|
可以看到历史记录
reset
有三种用法,分别是--soft,--hard,--mixed(默认)
,下面是三种用法的不同
--soft
:软回退表示回退到某个版本,且保留工作区和暂存区的所有修改内容
--haed:
硬回退表示回退到某个版本,且丢弃工作区和暂存区的所有修改内容
--mixed:
混合回退表示回退到某个版本,保留工作区的修改内容并丢弃暂存区的修改内容
忽略文件
我们有些文件可能不需要纳入GIT管理,而当我们使用git add .
的时候会把该文件提交,如果用git add filename
一个个加又太慢了
这时我们可以创建一个.gitignore
文件,在其中放入我们希望忽略的文件名,支持正则。
比如
1 |
|
会把所有文件扩展名为a的文件忽略