• 首页

  • 文章归档

  • 关于页面

  • 友链
潇 潇 暮 雨
潇 潇 暮 雨

潇潇暮雨

获取中...

08
25
git

git知识及命令整理

发表于 2019-08-25 • 被 250 人看爆

什么是git

git是一个开源的分布式版本控制系统,是目前世界上最先进,最流行的版本控制系统.

git的特性

  • 直接记录快照,而非差异比较
  • 近乎所有的操作都是本地执行

git中的三个区域

使用 Git 管理的项目,拥有三个区域,分别是工作区、暂存区、Git 仓库
Snipaste_20201117_180535.jpg

配置用户信息

git config --global user.name "xiao"
git config --global user.email "xlj940511@163.com"

检查配置信息

//查看所有的全局配置项
git config --list --global
//查看指定的全局配置项
git config user.name
git config user.email

获取帮助信息

# 打开git config 命令的帮助手册
git help config

如果不想查看完整的手册,那么可以用-h选项获得更简明的help输出

# 想要获取 git config 命令的快速参考
git config -h

git 的基本操作

# 初始化仓库
git init

# 检查文件的状态
git status

# 以精简的方式显示文件状态
git status -s

# 跟踪新文件
git add index.html

# 向暂存区中一次性添加多个文件
git add .

# 提交更新
git commit -m "新建了index.html 文件"

# 撤销对文件的修改(危险性极高,慎用)
git checkout -- index.html

# 取消暂存的文件
git reset HEAD 要移出的文件名称

# 跳过使用暂存区域
git commit -a -m '日志信息'

# 从 Git仓库和工作区中同时移除 index.js 文件
git rm -f index.js

# 只从 Git 仓库中移除 index.css,但保留工作区中的 index.css 文件
git rm --cached index.css

# 查看提交历史
git log

# 在一行上展示所有的提交历史
git log --pretty=oneline

# 使用 git reset --hard 命令,根据指定的提交 ID 回退到指定版本
git reset --hard <CommitID>

# 在旧版本中使用 git reflog --pretty=oneline 命令,查看命令操作的历史
git reflog --pretty=oneline

# 再次根据最新的提交 ID,跳转到最新的版本
git reset --hard <CommitID>

忽略文件

一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。 在这种情况下,我们可以创建一个名为 .gitignore 的配置文件,列出要忽略的文件的匹配模式。

文件 .gitignore 的格式规范如下:

① 以 # 开头的是注释

② 以 / 结尾的是目录

③ 以 / 开头防止递归

④ 以 ! 开头表示取反

⑤ 可以使用 glob 模式进行文件和文件夹的匹配(glob 指简化了的正则表达式)

  • 星号 * 匹配零个或多个任意字符
  • [abc] 匹配任何一个列在方括号中的字符 (此案例匹配一个 a 或匹配一个 b 或匹配一个 c)
  • 问号 ? 只匹配一个任意字符
  • 两个星号 ** 表示匹配任意中间目录(比如 a/**/z 可以匹配 a/z 、 a/b/z 或 a/b/c/z 等)
  • 在方括号中使用短划线分隔两个字符, 表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)

.gitignore文件的例子

# 忽略所有的 .a文件
*.a
# 跟踪所有的lib.a,即便你在前面忽略了.a文件
!lib.a
# 只忽略当前目录下的TODO文件,而不忽略 subdir/TODO
/TODO
#忽略任何目录下名为build的文件夹
build/
#忽略 doc/notes.txt,但不忽略doc/server/arch.txt
doc/*.txt
#忽略doc/目录及其子目录下的 .pdf文件
doc/**/* .pdf

将远程仓库克隆到本地

git clone 远程仓库的地址

git分支

# 查看分支列表
git branch

# 创建新分支
git branch 分支名称

# 切换分支
git checkout login

# 分支的快速创建和切换
git checkout -b 分支名称

合并分支

# 1. 切换到 master 分支
git checkout master
# 2. 在master 分支上运行 git merge 命令,将 login 分支的代码合班到 master 分支
git merge login

删除分支

git branch -d 分支名称

遇到冲突时的分支合并

如果在两个不同的分支中,对同一个文件进行了不同的修改,Git 就没法干净的合并它们。 此时,我们需要打开这些包含冲突的文件然后手动解决冲突。

# 假设:在把 reg 分支合并到 master 分支期间
git checkout master
git merge reg

# 打开包含冲突的文件,手动解决冲突之后,再执行如下命令
git add .
git commit -m "解决了分支合并冲突的问题"

将本地分支推送到远程仓库

# -u 表示把本地分支和远程分支进行关联,只在第一次推送的时候需要带 -u 参数
git push -u 远程仓库的别名 本地分支名称:远程分支名称

# 实际案例
git push -u origin payment:pay

# 如果希望远程分支的名称和本地分支名称保持一致,可以对命令进行简化
git push -u origin payment

跟踪分支

跟踪分支指的是:从远程仓库中,把远程分支下载到本地仓库中。需要运行的命令如下:

# 示例
git checkout pay

# 从远程仓库中,把对应的远程分支下载到本地仓库,并把下载的本地分支进行重命名
git checkout -b 本地分支名称 远程仓库名称/远程分支名称

# 示例
git checkout -b payment origin/pay

拉取远程分支的最新的代码

# 从远程仓库,拉取当前分支最新的代码,保持当前分支的代码和远程分支代码一致
git pull

删除远程分支

# 删除远程仓库中,制定名称的远程分支
git push 远程仓库名称 --delete 远程分支名称

# 示例
git push origin --delete pay
node知识点梳理
跨域与JSONP
  • 文章目录
  • 站点概览
潇潇暮雨

小姐姐潇潇暮雨

逗比肖~

Copyright © 2022 潇潇暮雨 · 19043744

Proudly published with Halo · Theme by ruby woo · RSS