Git总结笔记
git相关配置
# 设置你的 Git 用户名
git config --global user.name "<Your-Full-Name>" # 设置你的 Git 邮箱
git config --global user.email "<your-email-address>" # 确保 Git 输出内容带有颜色标记
git config --global color.ui auto # 对比显示原始状态
git config --global merge.conflictstyle diff3 git config --list #配置编辑器
git config --global core.editor "'E:/Sublime Text3/sublime_text.exe' -n -w" #配置定制化输出
git config --global alias.mylog "log --date=format:'%Y-%m-%d %H:%M:%S' --pretty=format:'%C(yellow)%h %Cblue%cn %Cred%ad %Creset%s'"
创建git仓库
#初始化目录
git init #克隆项目
git clone <远程仓库地址> <本地生成目录名>
查看仓库历史记录
#初始化目录
git init #克隆项目
git clone <远程仓库地址> <本地生成目录名> #查看仓库状态 重点命令
git status #查看日志
git log
--oneline 每行显示一个commit
--stat 显示统计信息
--graph 用图像展示分支信息
-p 查看具体改动信息
-w 忽略空格变化
<commit_sha> 显示指定的commit信息 ***关于分页器
要向下滚动,按下
j 或 ↓ 一次向下移动一行
d 按照一半的屏幕幅面移动
f 按照整个屏幕幅面移动
要 向上滚动,按上
k 或 ↑ 一次向上移动一行
u 按照一半的屏幕幅面移动
b 按照整个屏幕幅面移动
按下 q 可以退出日志(返回普通的命令提示符)
向仓库中添加commit
- 工作区:就是你在电脑里能看到的目录。
- 暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
- 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
#添加文件 从工作区添加到暂存区
git add <file1> <file2> … <fileN> #移除文件 从暂存区
git rm --cached <file1> <file2> … <fileN> #提交 暂存区的文件到版本库
git commit -m "<提交说明信息>" ***良好的提交说明
建议
消息篇幅简短(少于 60 个字符)
解释提交的作用(不是如何更改或为何更改!)
禁忌
请勿解释为何做出了这些更改(下文会深入讲解这一点)
请勿解释如何进行了更改(这是 git log -p 的目的!)
请勿使用单词"and"
如果你必须使用 "and",则你的提交说明可能进行了太多的更改,将这些更改拆分为独立的 commit
例如 "make the background color pink and increase the size of the sidebar" #查看已被加入但是尚未提交的更改。
git diff
= git log -p #忽略文件,不加入版本控制
修改.gitignore文件
支持通配符
空白行作为空格
# - 将行标记为注释
* - 与 0 个或多个字符匹配
? - 与 1 个字符匹配
[abc] - 与 a、b 或 c 匹配
** - 与嵌套目录匹配 - a/**/z 与以下项匹配
a/z
a/b/z
a/b/c/z
标签、分支、合并
#tag是固定的,分支是随着commit在移动的,HEAD是指向活跃的分支,也就是工作目录看到的分支,切换分支,也就是让
HEAD指向不同的分支 #创建标签
git tag <tagName>
-a带注释
-d删除标签
<commit_sha> #列出所有分支
git branch
<branch_name>创建分支
-d 删除分支
-D 强制删除 #给分支改名
git branch -m <old_name> <new_name> #切换分支/检出分支
git checkout <branch_name> #在某个分支基础上创建新的分支,并检出
git checkout -b <new_branch_name> <old_branch_name> ###快进合并
如果当前的分支和另一个分支没有内容上的差异,就是说当前分支的每一个提交(commit)都已经存在另一个分支里了,git 就会执行一个“快速向前”(fast forward)操作;git 不创建任何新的提交(commit),只是将当前分支指向合并进来的分支。 #合并分支
git merge <name-of-branch-to-merge-in> #撤销合并
git reset --hard HEAD^
^属于“相对 commit 引用”并表示“父 级 commit” #查看分支情况,可以看到分支图
git log --oneline --decorate --graph --all #查看合并冲突
git status #合并冲突指示符解释
编辑器具有以下合并冲突指示符:
<<<<<<< HEAD 此行下方的所有内容(直到下个指示符)显示了当前分支上的行
||||||| merged common ancestors 此行下方的所有内容(直到下个指示符)显示了原始行的内容
======= 表示原始行内容的结束位置,之后的所有行(直到下个指示符)是被合并的当前分支上的行的内容
>>>>>>> heading-update 是要被合并的分支(此例中是 heading-update 分支)上的行结束指示符 #解决合并冲突
git 使用合并冲突指示符来告诉你两个不同分支上的哪些行导致了合并冲突,以及原始行是什么。要解决合并冲突,你需要:
1.选择保留哪些行
2.删掉所有带指示符的行 遇到合并冲突:
1.打开编辑器,搜索合并冲突标记
2.移除带有标记的行
3.找出你要保留的行
4.保存文件、暂存文件、提交 #commit 合并冲突
删掉所有包含合并冲突指示符的行并选择保留哪些代码后,直接保存文件,并将其添加到暂存区,然后 commit!就像普通合并一样,代码编辑器会弹出,并让你提供 commit 消息。和之前一样,我们经常会使用自动生成的合并 commit 消息,因此在编辑器打开后,直接关闭编辑器并使用自动生成的 commit 消息。
撤销更改
#更新最后一个更改
git commit --amend #还原更改
git revert <commit_sha>
此命令将撤消目标 commit 所做出的更改
创建一个新的 commit 来记录这一更改 #重置更改,某个commit不在仓库中,则它所包含的内容也会消失
git reset <commit_sha>
--mixed 默认,将撤销的提交更改移到工作目录
--soft 将撤销的提交更改移到暂存区
--hard 将撤销的提交更改直接删除,丢到垃圾桶 #在进行重置分支命令前,最好备份分支
git branch backup 不过git还是会持续跟踪30天,调用则git reflog
###还原会创建一个新的commit,并还原或撤消之前的 commit。但是重置会清除 commit! ###
^表示父commit
~表示第一个父commit
父 commit – 以下内容表示当前 commit 的父 commit
HEAD^
HEAD~
HEAD~1
祖父 commit – 以下内容表示当前 commit 的祖父 commit
HEAD^^
HEAD~2
曾祖父 commit – 以下内容表示当前 commit 的曾祖父 commit
HEAD^^^
HEAD~3
合并 commit 具有两个父级。对于合并 commit,^ 引用用来表示第一个父 commit,而 ^2 表示第二个父 commit
Git总结笔记的更多相关文章
- Git学习笔记与IntelliJ IDEA整合
Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:http://git-scm.com/downloads Git简要使用说明:h ...
- Git学习笔记(10)——搭建Git服务器
本文主要记录了Git服务器的搭建,以及一些其他的配置,和最后的小总结. Git远程仓库服务器 其实远程仓库和本地仓库没啥不同,远程仓库只是每天24小时开机为大家服务,所以叫做服务器.我们完全可以把自己 ...
- Git学习笔记(四)
一.忽略特殊文件 在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件. 不需要从头写.gitignore文件,GitHub已经为我们 ...
- git 学习笔记6--remote & log
git 学习笔记6--remote & log 创建SSH Keys ssh-keygen -t rsa -C "1050244110@qq.com" 本地关联远程 git ...
- 《Pro Git》笔记3:分支基本操作
<Pro Git>笔记3:Git分支基本操作 分支使多线开发和合并非常容易.Git的分支就是一个指向提交对象的可变指针,极其轻量.Git的默认分支为master. 1.Git数据存储结构和 ...
- git使用笔记(三)(图文说明) 图解提交更改内容的不同方式,涉及代码
此步之前的工作和示例请参考以下帖子: git使用笔记(一)Git的下载与配置 git使用笔记(二) 如何把GitHub上项目同步到本地 -------------------------------- ...
- git入门笔记汇总——(廖雪峰博客git入门)
本文内容是对廖雪峰老师Git教程做的笔记,外加一些自己的学习心得,还抱着学以致用的心态来实践一番 如有显示错误 请移步本人github:git教程小结 Git学习笔记 Git简介 安装Git 创建版本 ...
- Git学习笔记---协作的一般流程
一般的操作流程 1.pull 王小坤与另一个同事张大炮一起开发一个项目,张大炮昨天修改了数据库读写的api,优化了执行速度,并把read()函数改名成了Read(),下午下班之前把这些代码push到服 ...
- 【转帖】Git学习笔记 记录一下
本文内容参考了廖雪峰老师的博文,并做了适当整理,方便大家查阅. 原帖地址 https://wangfanggang.com/Git/git/ 常用命令 仓库初始化 - git init 1 git i ...
- 【Git 使用笔记】第四部分:git在公司中的开发流程
先声明几个变量 仓管A:主分支,只有master分支仓管B:开发分支,只有各个业务开发分支 仓管B fork 于 A 如下图 为了保证 代码的稳定性,只有 仓管B中的某个分支测试完毕并进行了代码r ...
随机推荐
- iOS 开发笔记-获取某个APP素材
2019.02.01 更新 以下这种方式只适合越狱的手机,目前12.1以后,iTools已经不适合了,请看最下面第二种方式. 有时候,我们看到别人的APP做得挺漂亮的,那么我们想查看该APP的图片素材 ...
- C# sapnco支持.net 4.5了,真是个意外的发现
意外篇: 需要用C#写一个RFC直连的类库,需要引用sapnco.dll sapnco_utils.dll两个文件 之前都是从网上下载的sapnco3.0,引用开发,在win10机器上使用没有问题 ...
- Nuxtjs初始
今天去看vue的官网,才看了他的升级版-->Nuxtjs,https://nuxtjs.org/guide/installation可以点击链接进入他的官网查看文档 第一步,搭建项目之前的准备工 ...
- sqli-labs(七)——登陆处sql注入
第十三关: 这关也是一个登陆口,和上关所说的一样,先使用'"试一下,让程序报错然后判断后台的sql语句 可以看到后台sql大概是 where name = ('$name')... 这样的 ...
- 事件响应模型(游戏引擎、JAVA中等应用)
事件,我们在生活中时时在产生事件并且做出响应,如早晨出门时,看见外面下雨了,这时候我们需要带把伞等情况! 在现实生活之中事件分为人为事件和自然事件,那么在计算机操作系统中也不例外,存在两种事件 1.人 ...
- <1>Cocos Creator安装和启动
学习之间需要了解JavaScritp基本语法和面向对象,详情参考https://blog.csdn.net/jadeshu/article/category/7476938 1.下载Cocos Cre ...
- Python 6 -- 构建一个Web应用
用Flask Web框架,实现浏览器页面交互.在此之前需要了解web的基本工作流程,可参照https://blog.csdn.net/m0_37466453/article/details/72752 ...
- samba共享目录无法访问的一般解决方案,非用户登录和读写权限问题
配smb,被第四点坑了很久,特此转载. 由于这5点都是比较普通的情况,不涉及用户登录和读写权限问题 1)关闭防火墙: #sevice iptables stop 2)修改 /etc/samba/smb ...
- Quick-Cocos2d-x 新建项目
开发工具准备就绪以后,下面我们就可以开始创建我们的项目了. 首先启动 Quick 下的 player3,在这儿的示例标签下你可以看到很多Quick自带的示例,对于初学者来说,看看这些示例的使用方法会对 ...
- 导航,头部,CSS基础
1.制作自己的导航条. 2.HTML头部元素: <base> 定义了页面链接标签的默认链接地址 <style> 定义了HTML文档的样式文件 <link> 定 ...