Skip to content

本地仓库相关操作

基本流程:(可以比作一个生产仓库)

  1. 在外部的生产车间进行生产我们的代码,保证代码是好的,是完善的
  2. 生产完代码后,我们通过add操作,将代码放到运输车中
  3. 最后,我们通过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为后缀的文件都放到忽略文件中

js
// .txt文件都不进行监测,除了a.txt
*.txt
!a.txt

忽略文件夹,在Git中,如果文件夹是空的,是不会被进行跟踪的,如果我们想要使文件夹不被监测,我们可以将这个文件夹名称放到忽略文件.gitignore中:

js
// 整个文件夹不进行监测
/abc

// 文件夹中的某个文件不进行监测
/abc/aaa.c

忽略文件一般是在项目创建的时候我们加入的,这个时候的忽略文件会直接生效的,如果我们想要在后续加入忽略文件,使项目中的部分内容不被提交到在线代码托管平台,我们需要进行额外的配置:

js
// 清除当前的本地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中,有些操作使用是非常频繁的,如addcommit等等,我们可以通过alias命令对其操作进行别名的设置,我们需要在全局的配置文件中进行设置

git config --global alias.a add ,给add操作命令设置别名为a

后续我们就可以使用git a .来代替git add .

config配置文件中就多了别名的设置内容:

js
[alias]
	a = add

我们也可以在配置文件中直接进行别名设置的添加和修改

Released under the MIT License.