本地仓库相关操作
基本流程:(可以比作一个生产仓库)
- 在外部的生产车间进行生产我们的代码,保证代码是好的,是完善的
- 生产完代码后,我们通过
add
操作,将代码放到运输车中 - 最后,我们通过
commit
,将代码放到仓库中
如果后面文件又被修改了,我们还是需要放到车里面,再将其放到仓库中
查看操作
查看提交的历史记录(日志):
git log
可以看到提交的作者,时间和对应的提交描述说明
查看提交文件的变动信息:
git log -p
除了看到
git log
得到的信息,还可以更加细致的看到文件的变动信息,增加/减少了什么具体内容等等,如果只想看到最近的一次提交,可以在后面加上-1:git log -p -1
,就显示最近一次提交的文件变化只看精简的提交信息:
git log --oneline
只是查看有哪些文件发生了变化:
git log --name-only
查看文件发生了什么类型的变化(添加还是修改):
git log --name-status
出现在文件前的标志:
M
表示修改;A
表示添加
显示有变更的文件:
git status
查看我们的生产车间中整体的状态(文件就只有以下的两种状态),可以看到文件的变更状态,(查看文件有无被版本库进行跟踪管理(需要
add
的文件),查看是否有文件等着我们去提交到仓库(需要commit
的文件),这两种情况是不同的状态),如果我们把所有的文件都提交到了仓库中,那再使用git status
命令就会发现其显示:nothing to commit, working tree clean
,表示当前生产车间中的文件和我们远程仓库中的文件是一致的,如果我们后续修改了文件,这个文件又会变化到未跟着的状态,后续我们需要通过add
将其放到暂存区,再进行commit
提交到仓库中显示所有远程仓库:
git remote -v
添加(跟踪)目录
将单个文件进行跟踪:
git add xxx.py
将工作区的所有文件放入暂存区:
git add .
其中
.
表示当前文件夹,但是这种情况在我们添加部分文件的时候会有问题,需要使用忽略文件进行协同使用
忽略文件
.gitignore
文件是一个版本库的配置文件,可以配置我们哪些文件进行提交,哪些文件进行忽略提交,将文件夹中的某些文件名放到.gitignore
文件中,版本库将不在监测这些文件了,后续add
操作也不会对放到忽略文件中的文件进行生效,我们也可以进行简写来声明某一类的文件,如*.txt
将所有以txt
为后缀的文件都放到忽略文件中
// .txt文件都不进行监测,除了a.txt
*.txt
!a.txt
忽略文件夹,在Git
中,如果文件夹是空的,是不会被进行跟踪的,如果我们想要使文件夹不被监测,我们可以将这个文件夹名称放到忽略文件.gitignore
中:
// 整个文件夹不进行监测
/abc
// 文件夹中的某个文件不进行监测
/abc/aaa.c
忽略文件一般是在项目创建的时候我们加入的,这个时候的忽略文件会直接生效的,如果我们想要在后续加入忽略文件,使项目中的部分内容不被提交到在线代码托管平台,我们需要进行额外的配置:
// 清除当前的本地Git缓存
git rm -r --cached .
// 应用.gitignore等本地配置文件重新建立Git索引
git add .
// 提交当前Git版本并备注说明
git commit -m "update .gitignore"
// 推送到远程
git push
提交暂存区的文件到本地仓库(版本库)
提交所有文件:
git commit -m “备注”
提交指定文件:
git commit file1 -m “备注”
提交前要先对目录/文件进行跟踪及git add
提交工作区上次commit
之后的变化到仓库区:git commit -a
删除文件或目录
对于文件或者目录,我们可以进行删除操作
删除工作区文件:
git rm 文件名
,将文件从版本库中进行删除,在本地也同样删除了不跟踪但保留在工作区中:
git rm --cached 文件名
,将文件从暂存区/版本库中进行移除,但是文件还是在本地中存在
修改文件名称
- 修改版本仓库中文件的名称:
git mv 原名称 新名称
,修改为名称后,其文件的状态发生了改变,我们需要重新进行到版本库的提交
修改描述
在我们进行commit
操作将文件提交到我们的本地仓库版本库后,如果我们觉得这个描述不是很好,我们可以进行修改描述:git commit --amend
(修改最新一次提交的描述)
使用这个操作后,会调用vim
,我们可以在里面修改描述,修改完后保存退出即可
管理暂存区的文件
- 我们将文件通过
add
放到暂存区后,如果后悔了,我们可以通过git rm --cached 文件名
操作将文件从暂存区中进行撤销 - 但是对应进行提交到版本库的文件,我们修改这个文件并放到暂存区后,如果这个时候后悔了,我们可以通过
git reset HEAD 文件名
操作将其从暂存区中进行撤销,这个文件就又重新变为修改状态,但是这时文件的内容还是修改后的,如果想要文件恢复到上一次版本库中的内容,要使用恢复文件操作:git checkout -- 文件名
恢复文件
使用原来本地版本库中的内容,将文件恢复到上次提交后的内容
git checkout HEAD 文件名
把最后一次提交中把文件复制到工作区分支
设置操作别名
在Git
中,有些操作使用是非常频繁的,如add
,commit
等等,我们可以通过alias
命令对其操作进行别名的设置,我们需要在全局的配置文件中进行设置
git config --global alias.a add
,给add
操作命令设置别名为a
后续我们就可以使用git a .
来代替git add .
在config
配置文件中就多了别名的设置内容:
[alias]
a = add
我们也可以在配置文件中直接进行别名设置的添加和修改