git 中文乱码

输入:$env:LESSCHARSET=‘utf-8’
ide中输入:LESSCHARSET=utf-8

git 特点:

本地存有所有的记录快照,而不是比较差异。而且一般只添加数据。
所以:1.命令运行都比较快
2.通过任意本地快照都可以恢复git服务器数据
3.本地的任何操作只要提交到了本地快照中,基本没有无法恢复的情况

git 的三种状态(commited\modified\stage):

执行git status 就可以看到,在我的理解中文件应该还有两种状态
【modified】 - Changes not staged for commit 本地已修改,但还没有保存到数据库中
【stage】 - Changes to be committed: 本地修改后执行了 git add等,表示暂存
【commited】 - 本地已提交到了本地数据库中,可以执行git log --stat -1 查看文件 执行 git log -p -1 查看详情
【Untracked】 - Untracked files 未被跟踪的,执行git status 可以看到
【Ignore】 - 被排除的,还没有验证这个是否属于Untracked

git config 的三种级别

(local 【仓库配置,项目的.git文件种】> global【只针对当前用户】 > system【每一个用户以及每一个仓库的配置】) 优先级从左到右

git 命令


git helpgit help <verb>git <verb> helpman git-<verb>git init 仓库初始化
git clone <url> 克隆
git status 查看仓库状态git status --short 或者 git status -s 得到一种更为紧密的数除
git add <path> 跟踪新文件查看已暂存和未暂存的区别 git status / git diff
查看已暂存即将提交的区别 git diff --staged 或 git diff --cachedgit commit 提交更新git commit -m "xxx" 提交git commit -a 跳过暂存区直接提交(不建议用)git commit -m "yyy" --amend 用本次更新覆盖上次的更新,很有用,可以用来改提交文字,增加提交文件,并且push之后只有一条commit记录,很整洁git rm 移除文件git rm <path> 从跟踪列表和本地同时移除该文件git rm -f 强制删除,从跟踪列表删除,同时删除暂存和modified的文件git rm --cached 从跟踪列表删除 但保留本地文件git mv 移动或者重命名文件,重命名时注意大小写问题,本地仓库和服务器大小写敏感规则不一样的时候,很难搞git log 查看提交历史,建议在各种命令后面带上-1,-2等,只查看最近1、2条git log -p 或 git log --patch 以补丁方式输出git log --stat -1 查看最近1次的提交,以统计的模式查看git log --pretty 有以下几种格式oneline/short/full/fuller/format 例子git log --pretty=online修改git add的文件git commit --amendgit reset HEAD <filePath> 取消暂存file文件 会把staged的文件变成Changes not staged for commit撤销对文件的修改(不可恢复)git checkout <path>git remote 查看远程仓库git remote -v本地分支和远程分支  本地分支:master 远程分支 origin/master 远程分支也是在本地的 只要更新他 他的HEAD就不会变git fetch origin 更新远程分支git push 推送git push origin mastergit tag 打标签git 别名例子: git config --global alias.last 'log -1 HEAD'使用 git lastgit 提交
git 是面向对象的,每一次提交会向数据库中保存这些内容
(1) Blob 提交的文件的快照A
(2)Tree 一个树对象(git中把每一个子目录的校验和保存为对象),这个树对象中包含指向提交的文件的快照的指针
(3)Comit Object提交对象, 包含作者、邮箱、树对象,父提交(上一次提交的指针)每一个分支都指向最新的一次提交,并且自动向前移动git branch 创建新分支 - 实际上就是在当前所在对象上创建了一个指针HEAD,指针HEAD指向本地的最新的分支
可以用 git log --oneline --decorate
git branch -b <new name> 在当前对象创建一个新分支并切换过去
git branch -d <branch name> 删除分支
git branch -v 查看所有分支 和 最后一次提交
git branch --merged 可以查看已经合并到当前分支的分支
git branch --no-merged 这个参数后可以增加参数 当不输入时代表当前分支
例如:查看未合并到master分支的分支有哪些呢? git branch --no-merged master跟踪分支
在跟踪分支上执行git pull git会自动合并 我理解的跟踪分支就是跟远程的分支关联起来的分支
git clone时会自动创建跟踪分支
例子git checkout -b dd5401 origin/iteration_54_from_master_01 创建dd5402分支 并且跟踪远程分支git checkout <分支名> 切换分支,建议先pull再拉取分支,执行了checkout之后,HEAD就指向了新分支git mergefast-forward 快进 如果这个分支的指针向前移动就可以进入到下一个分支,那么就进行快进,不会有冲突git merge xxx 合并xxx的分支到当前分支如果遇到冲突 比如 主分支master 在某次提交A 后分别有两个分支 branch1 和 branch2 ,当在branch1执行 git merge branch2的时候出现冲突那么git会使用branch1和branch2的快照的共同祖先A, 这三个快照做一个简单的三方合并 合并后的分支有两个parent 一个指向branch1 一个指向branch2在解决冲突时,可以用git status 查看冲突文件,当退出合并工具git会询问是否解决冲突,如果解决了会自动执行git add 把合并后的文件放到暂存区

《ProGit》读后感:我的git理解和常用Git命令相关推荐

  1. 【Git】git使用 - 各种常用场景命令解决

    (多看git中的各种帮助-h/--help,可能有你想要的命令) 1.分支的创建和切换 创建 >>>> git branch branchName 切换分支 >>& ...

  2. git提交代码常用的命令整理

    1.更新develop分支代码: git pull 2.新建分支: git checkout -b 新分支名 3.切换分支: git checkout 分支名 4.提交分支代码(思路:查看改动文件,将 ...

  3. Git 安装及常用操作配置

    (一)Windows下Git的安装方法 (二)Git管理工具TortoiseGit的安装方法 (三)Git初始使用常用配置命令 C:\Users\Administrator\.gitconfig (一 ...

  4. Git stash及解决Git stash冲突问题

    Git stash 适应场景: 使用git的时候,我们往往使用分支(branch)解决任务切换问题,例如,我们往往会建一个自己的分支去修改和调试代码, 如果别人或者自己发现原有的分支上有个不得不修改的 ...

  5. 前端、git入门至常用指令

    谈git首先要谈到svn.SVN是比git诞生更早.所以最核心的区别Git是分布式的,而Svn不是分布的.能理解这点,上手会很容易.用git就首先要明白git命令.下面是我自己整理经常使用到的git命 ...

  6. 十分钟了解 git 那些 “不常用” 命令

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:Java实现QQ登录和微博登录个人原创+1博客:点击前往,查看更多 链接:https://segmentfaul ...

  7. git 删除tag_Git常用命令

    资源列表: Git Book 深入浅出Git教程(转载) Git使用详细教程 名词介绍 Workspace:工作区Index/Stage:暂存区,也叫索引Repository:仓库区(或本地仓库),也 ...

  8. Git的安装以及常用的命令总结

    Git的安装以及常用的命令总结 一.Git的概述 二.Git的安装 三.Git的使用命令 四.Git的分支操作 五.Git团队的协作机制 (一).Git的概述 Git是一个免费的.完全开源的分布式版本 ...

  9. git原理和常用操作

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 由于gitlab的免费私有仓库的优势,所以在公司使用gitlab会多一些,对于gitlab来说,注册需要翻墙,而登录不需要. 关于git是做什么的,这 ...

最新文章

  1. 地平线黄畅:软件2.0时代,数据驱动进化,算力将成为智能化的基石丨MEET2021...
  2. VTK:Rendering之TransparentBackground
  3. nginx比较apache
  4. 从零开始构建一个的asp.net Core 项目(一)
  5. boot spring 启动 文本_springboot 选择启动某个配置文件
  6. 时间函数strtotime
  7. 11月热门下载资源TOP100强力推荐!
  8. Spring boot 跨域请求实现方式汇总
  9. 打印机怎么扫描到电脑_扫描全能王怎么把图片变成pdf_扫描全能王怎么把文件传到电脑上_问答...
  10. 数据可视化 基于TMDB数据集的电影数据分析(项目源码 + 数据集 + 课程设计说明书 + 可视化图表+ 运行说明等)
  11. 语音用户如何计算机,笔记本电脑语音聊天对方听不清声音该怎么处理
  12. 360前端校招2019笔试编程题
  13. 3. 工业大数据的创新价值
  14. linux---finger命令
  15. 【渝粤教育】国家开放大学2018年秋季 2408T中国当代文学 参考试题
  16. 【深度学习BookNote】多层感知器(multi-layer perceptron)
  17. php 连接sqlserver数据库(一)
  18. vscode配置基于maven的Javaweb开发
  19. Lucas定理扩展Lucas
  20. 微软春天发布活动将聚焦在Windows 10云版

热门文章

  1. java8新特性【Lambda、Stream API、Optional、Date Time API 、并行流与串行流】
  2. 利用js获取滚动条滚动距离,实现图片固定在屏幕的某个位置
  3. (原創) 11/10/1982 セカンド・ラブ (中森明菜)
  4. jvisualvm的简略介绍
  5. 学霸养成系统APP(app设计)
  6. 微信小程序单元测试攻略
  7. 填空题, 2017, 省赛 迷宫
  8. 中文维基百科文本数据获取与预处理
  9. php分页命名锚记怎么用,wordpress文章或页面设置命名锚记(锚点)的方法
  10. php分数分母,连分数计算器