萤火小屋

优律的知识库

  • 首页
  • 归档
  • 分类
  • 标签
  • 留言
  • 关于

  • 搜索
消息队列 RabbitMQ Redis 双指针 力扣 动态代理 Git YAML SpringBoot SpringMVC 回溯算法 分治算法 归并排序 快排 手撕 事务 MySQL索引 MySQL 小技巧 Spring Framework Spring 动态规划 Linux Android 贪心算法 操作系统 进程调度模拟 IPv6 数据库 计算机组成原理 计算机基础 栈 Java 静态路由 路由器 交换机 数字通信 网络工程 计算机网络 Web http 大学学习技巧 程序设计 算法

Git学习笔记

发表于 2021-12-22 | 分类于 开发工具 | 0 | 阅读次数 151

理论知识

工作区域

Git本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository、Git Directory)。算上远程仓库(Remote Directory),一共有四个工作区域。

git工作空间

工作目录:工作区域,就是你平时放代码的的地方。
暂存区:用于临时存放改动,事实上只是一个记录即将提交改动的文件。
本地仓库:安全存放数据的位置,有提交到所有版本的数据,HEAD指向最新放入仓库的版本。
远程仓库:代码托管仓库,即代码在远程服务器的备份。

通过如上图的指令可以将内容从一个区域提交到另一个区域。

文件的状态

Untracked:未跟踪,文件在工作目录,没有添加到git仓库,通过使用git add命令添加到暂存区,状态变为Staged。

Unmodify:文件已入库,未修改。即版本库中的快照文件和工作区中的文件完全一致。这种状态的文件有两种去处:1、被修改,状态变为Modified。2、通过git rm命令移除版本库,状态变为Untracked。

Modified:已被修改,指的是当前文件已被修改,这个状态的文件也有两种去处:1、通过git add添加到暂存区状态变为Staged。2、通过git checkout丢弃修改返回Unmodify状态,即从库中取出文件覆盖当前修改。

Staged:已添加到暂存区。它也有两种去处:1、通过git commit将暂存区提交到仓库,使得工作区文件和仓库文件内容一致,状态变为Unmodify。2、通过git reset HEAD filename取消暂存,状态变为Modified。

基本命令

git config -l 查看配置列表
git config --system --list 查看系统配置
git config --global --list 查看全局配置即用户配置
git config --gloabl user.name [VALUE1] 配置用户名(VALUE1为配置变量)
git config --gloabl user.email [VALUE1] 配置邮箱(VALUE1为配置变量)

注:在Windows操作系统下,用户配置会保存在C:\Users\${username}\.gitconfig文件中(username为系统用户名)。系统配置会保存在安装目录下的\etc\gitconfig文件中。

get init 初始化当前工作区,即在当前工作区创建版本控制(创建.git文件夹)
git clone URL 克隆远程仓库到当前工作空间(URL为远程仓库地址)

git status 查看当前工作区的文件状态
git add [filename] 将当前文件添加到暂存区,如将filename替换成“.”则将当前工作区所有文件添加到暂存区
git rm --cached [filename] 从索引去删除文件,但是文件还在工作区,此时git不再跟踪该文件
git rm [filename] 彻底删除文件,它就不在了
git commit -m [MESSAGE] 将暂存区的代码提交到本地仓库,MESSAGE为提交备注

git brancn 查看当前所有分支
git branch -r 查看当前仓库对应的远程分支
git branch -d [branchName] 删除指定的分支

基础用法

.gitignore文件

如果不想将某些文件被Git管理,可以在工作目录建立一个名为.gitignore的文件,在其中配置即可达到目的。如下为.gitignore文件的语法。

#为注释
*.txt         # git将不再管理以.txt结尾的所有文件
!config.txt   # 但是config.txt除外
/build        # 只忽略根目录下的build文件夹中所有的文件
target/       # 只要有名为target的文件夹出现就忽略
target/*.jar  # 只忽略所有名为target下的jar包,其他文件夹下不起作用,比如“target/classpath/app.jar”还是会被git管理的

要点:

  1. .gitignore文件中的空行和被“#”号注释的都不起作用

  2. 可以使用Linux通配符。“*”代表任意多个字符,“?”代表一个字符,“[abc]”代表可选字符范围,“{String1, String2, ...}”代表可选字符范围。

  3. 感叹号代表例外,如果规则前面加上“!”将作为例外不会被git忽略。

  4. 名称后加上路径分隔符(例如“target/”),表示只要是这个名称的目录都会被git忽略,不管它在哪。
    image.png

  5. 名称前加上路径分隔符(例如“/my”),表示只在根目录下的该名称文件夹下的文件被git忽略。
    image.png

待续未完

# Git
SpringBoot学习日记-从配置文件中获取数据
Spring的事务
  • 文章目录
  • 站点概览
优律

优律

优律的知识库

83 日志
20 分类
44 标签
E-mail Twitter Instagram
Links
  • CZLisyx - 浮生志
  • Vedfolnir
0%
© 2019 — 2023 萤火小屋——优律的博客网站
网站已勉强运行 
Halo博客系统技术支持