Git学习笔记04-管理修改】的更多相关文章

1.管理修改 什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改. 为什么说Git管理的是修改,而不是文件呢?我们还是做实验. 第一步,对readme.txt做一个修改,比如加一行内容: $ cat readme.txt Git is a distributed version control system. Git is free software distributed un…
Git跟踪并管理的是修改,而非文件.新增文件,修改一行,删除一点,都算是修改. 在.git工作区新增一个文件,test.txt,输入test git ...然后git add ​ ​ add之后修改test.txt内容,加个123 然后git commit ​ 使用git diff HEAD -- test.txt对比工作区和分支内容 --后面一定要有个空格 ​ 可以看到第二次修改的内容并没有被提交…
通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息. 下面我们实战一下--no-ff方式的git merge: 首先,仍然创建并切换dev分支: $ git checkout -b dev Switched to a new branch 'dev' 修改readme.txt文件,并提交一个新的commit…
分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN. 如果两个平行宇宙互不干扰,那对现在的你也没啥影响.不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN! 分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了.如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险. 现在有了分支,就不用怕了.你…
工作区下的.git文件夹其实是Git的版本库,Git的版本库里存了很多东西,其中最重要的就是称为 stage 的暂存区,还有Git为我们自动创建的第一个分支 master ,以及指向master的一个指针叫 HEAD . 把文件往Git版本库里添加的时候,是分两步执行的: 第一步是用 git add 把文件添加进去,实际上就是把文件修改添加到暂存区: 第二步是用 git commit 提交更改,实际上就是把暂存区的所有内容提交到当前分支. 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区…
使用 git checkout -- file可以撤销工作区的修改 一种是修改后还没有放到暂存区,撤销修改回到和版本库一模一样的状态 lesson.txt文件已经提交到版本库了,内容如图. ​ 修改一下,保存后.git diff对比看下 ​ ​ 然后git checkout -- lesson.txt ​ 可以看到内容变回来了. 另一种是已经提交到了暂存区又修改了,撤销修改就退回到了提交暂存区后的状态 接着上面直接修改一下lesson.txt,保存后git add添加到暂存区.不放心可以先git…
发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本.将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来.所以,标签也是版本库的一个快照. Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支很像对不对?但是分支可以移动,标签不能移动),所以,创建和删除标签都是瞬间完成的. Git有commit,为什么还要引入tag? “请把上周一的那个版本打包发布,commit号是6a5819e...” “一串乱七八糟的…
GIT学习笔记(3):分支管理 何谓分支 GIT是如何存储数据的 GIT不是存储文件差异或者变化量,而是一系列文件的快照.在Git提交时,会保存一个提交(commit)对象,该对象包含一个指向暂存内容快照的指针,它大概是这样子的. 三个表示文件快照内容的 blob 对象:一个记录着目录树内容及其中各个文件对应 blob 对象索引的 tree 对象:以及一个包含指向 tree 对象(根目录)的索引和其他提交信息元数据的 commit 对象. 多个提交对象之间是链接关系,每个提交对象会指向上一个提交…
本文内容参考了廖雪峰老师的博文,并做了适当整理,方便大家查阅. 原帖地址 https://wangfanggang.com/Git/git/ 常用命令 仓库初始化 - git init 1 git init 我们新建一个文本文件readme.txt 12 Git is a distributed version control system.Git is free software. 将文件添加到仓库中 - git add 1 git add . 将文件提交到仓库 - git commit 1…
本文主要记录了Git服务器的搭建,以及一些其他的配置,和最后的小总结. Git远程仓库服务器 其实远程仓库和本地仓库没啥不同,远程仓库只是每天24小时开机为大家服务,所以叫做服务器.我们完全可以把自己的某台多余的机器设置成不关机状态. 但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用. 搭建Git服务器需要准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,这样,通过几条简单的apt命令就…
GIT学习笔记(2):时光机穿梭与远程仓库 撤销操作 1.GIT如何跟踪修改 在我们修改了代码内容后,执行了git add和git commit命令来将其交由Git进行版本控制.我们前面举的例子是这样的,git add将文件加入暂存区(菜篮子),git commit一并提交到版本库(柜台结账).如果我们想拿其他的菜,但是不加入篮子,Git是无法对其进行跟踪的. 比如我们队Test.java第一次修改后,执行git add命令将第一次修改版本加入了暂存区,然后又修改了Test.java,但是com…
Pro Git 学习笔记 文档地址:Pro Git原文地址:PRO GIT 学习笔记 git常见命令 1.Git起步 初次运行Git前的配置 用户信息 git config --global user.name "your user name" git config --global user.email "your email address" 文本编辑器 设置默认的文本编辑器:git config --global core.editor emacs 查看配置信…
远程库的使用 前面说到的都是git在本地的操作,那么实际协作开发过程中我们肯定是要有一个远程版本库作为项目的核心版本库,也就是投入生产使用的版本.这里我们以 Github为例.Github是一个开放的git远程服务器,首先我们先注册一个github账户,如何注册就不在这里.说了绑定本地版本库与Github远程库有两种方式,一种是以ssh协议连接,在这方式下我们需要先绑定一个ssh key,这个在下面会说.还有一种是https协议,但是使用https速度慢会比慢,而且每次推送(push)都必须输入…
一般的操作流程 1.pull 王小坤与另一个同事张大炮一起开发一个项目,张大炮昨天修改了数据库读写的api,优化了执行速度,并把read()函数改名成了Read(),下午下班之前把这些代码push到服务器上了. 王小坤一直在做设备驱动的相关工作,昨天也刚刚修改了driver.c文件中的几个函数,加班太晚就只是commit了一下,没push到服务器.今天早上听说张大炮已经把数据库读写的api改了,那么现在王小坤直接推到服务器,是推送不上去的,因为张大炮修改的那部分代码王小坤本地并没有,而王小坤本地…
机器学习实战(Machine Learning in Action)学习笔记————04.朴素贝叶斯分类(bayes) 关键字:朴素贝叶斯.python.源码解析作者:米仓山下时间:2018-10-25机器学习实战(Machine Learning in Action,@author: Peter Harrington)源码下载地址:https://www.manning.com/books/machine-learning-in-actiongit@github.com:pbharrin/ma…
GIT学习笔记(1):创建版本库 创建版本库 1.创建合适目录并初始化为仓库 版本库即需要交由Git进行版本控制的目录,其下所有文件的修改.删除,Git都能跟踪还原. 说明:初始化后,当前目录下会多出来一个名为.git的隐藏目录,这个目录是Git用来跟踪管理版本库的,我们切勿修改. 关于GIT版本库 前面说了,GIT会在初始化为仓库的目录下创建一个.git的隐藏目录,它是GIT的版本库.GIT的版本库里存放了很多东西,其中最重要的就是称之为stage或index的暂存区,另一个是GIT为我们创建…
GIT学习笔记(5):变基rebase 变基 引入变基 在Git中整合来自不同分支的修改主要有两种方法:merge以及rebase. 整合分支最容易的方法是merge,他会把两个分支的最新快照以及两者最近的共同祖先进行三分合并,合并的结果是生成一个新的快照(并提交). 其实,还有一种方法,我们可以提取在TESTING在COMMIT:vg65w上所做的修改,然后根据它在MASTER所在的COMMIT:gta24上重新做一遍,就像重新播放一样,这样提交到某一分支上的所有修改都已到了另一分支上,我们称…
Git学习笔记(二) 突然发现,学习新知识新技能,都得经常温故使用,这样才能日益精进.最近学习的Git是因为加入了课题组,在学习做一些后台,由于后台开发会牵扯到多人开发,所以学会Git这一代码管理工具会很有用.但是一周下来,目前我还没用到Git,结果,Git代码几乎忘干净了... 接着整理,还是老规矩,博客其实是我的学习笔记,将学习的知识整理一下,以便以后查阅.在此,学习Git主要还是通过廖老师的教程,参见https://www.liaoxuefeng.com/wiki/896043488029…
Redis:学习笔记-04 该部分内容,参考了 bilibili 上讲解 Redis 中,观看数最多的课程 Redis最新超详细版教程通俗易懂,来自 UP主 遇见狂神说 10. Redis主从复制 10.1 概念 主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器.前者称为主节点(master/leader),后者称为从节点(slave/follower): 数据的复制是单向的,只能由主节点到从节点: Master以写为主,Slave 以读为主: 默认情况下,每台Redis…
Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:http://git-scm.com/downloads Git简要使用说明:http://rogerdudler.github.io/git-guide/index.zh.html Github官方使用说明:https://help.github.com/articles/set-up-git 默认安装 配置 1)首先你要告诉git你的名字 git config --glob…
一.忽略特殊文件 在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件. 不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了.所有配置文件可以直接在线浏览:https://github.com/github/gitignore .gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理! 二.配置别名 $ git config --global al…
git 学习笔记6--remote & log 创建SSH Keys ssh-keygen -t rsa -C "1050244110@qq.com" 本地关联远程 git remote add origin git@server-name:path/repo-name.git git push -u origin master git push origin master 常用命令 git remote -v #显示remote的信息,见View1 git remote ad…
Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:http://git-scm.com/downloads Git简要使用说明:http://rogerdudler.github.io/git-guide/index.zh.html Github官方使用说明:https://help.github.com/articles/set-up-git 默认安装 配置 1)首先你要告诉git你的名字 git config --glob…
git学习(7)标签管理 1. 建立标签 在发布版本时候,我们通常会在版本库中打一个标签,这样就唯一确定了打标签的版本,有点像个里程碑,这里会有一个指向某个commit的指针 打标签很简单,首先切换到要打标签的分支上,然后使用命令git tag <name> $ git branch * dev master $ git checkout master Switched to branch 'master' Your branch is up-to-date with 'origin/mast…
GIT学习笔记(4):远程分支 远程分支 远程分支是什么 远程分支是对远程仓库中的分支的索引.它们是一些无法移动的本地分支:只有在GIT进行网络交互时才会更新.远程分支就是书签,提醒着你上次连接远程仓库是上面各分支的位置. 我们用 (远程仓库名)/(分支名) 这样的形式表示远程分支.我们来举一个例子,假如你从GITHUB上克隆了一个项目到本地,GIT会自动为你将次远程仓库命名为origin,并且下载其中的所有数据,建立一个指向它的master分支的指针,在本地命名为origin/master,但…
SaToken学习笔记-04 如果有问题,请点击:传送门 角色认证 在sa-token中,角色和权限可以独立验证 // 当前账号是否含有指定角色标识, 返回true或false StpUtil.hasRole("super-admin"); // 当前账号是否含有指定角色标识, 如果验证未通过,则抛出异常: NotRoleException StpUtil.checkRole("super-admin"); // 当前账号是否含有指定角色标识 [指定多个,必须全部验…
本文主要记录了git中,错误的撤销和文件的删除. 撤销修改 这里有3中情况 改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file. 不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了1,第二步,按照1操作. 已经提交了不合适的修改到版本库时,想要撤销本次提交,可以版本回退,不过前提是没有推送到远程库. //第一种撤销:工作区撤销 ubuntu@myubuntu:~/j…
笔者在本地终端进行 git 工作目录的相关处理时,遇到由于某种情况需要使用 git checkout 命令切换到其他分支的情景.此时,若已经对当前分支做了一定的修改,则直接切换分支时 git 会提示错误信息.本文即总结下笔者目前了解和使用的 git 切换到其他分支冲突时的解决方案. 问题 当本地遇到特殊情况,需要切换到其他分支时,当前分支可能会存在以下两种可能: (1) 对当前分支并未进行任何修改,从而可以直接使用 git checkout 命令切换到其他分支. git checkout tes…
笔者最近进行开发过程中,所有参与者的代码需要通过 git 上传到远端仓库中,不同的模块对应不同的 git 分支,不同模块的数据需要从远端仓库中获取.这里记录下笔者从远端仓库中获取分支数据,进行修改,最后重新上传同步分支数据的过程. 注:对于本地不存在 git 仓库的情况,要么直接通过 git clone 命令获取对应的远端整个仓库,此时获得远端仓库的所有数据,要么可以选择一个目录,通过 git init 命令将该目录初始化为一个空的 git 仓库,之后再根据下文描述的步骤获取仓库数据(可以单独获…
自然,你是不会犯错的.不过现在是凌晨两点,你正在赶一份工作报告,你在readme.txt中添加了一行: $ cat readme.txt Git is a distributed version control system. Git is free software distributed under the GPL. Git has a mutable index called stage. Git tracks changes of files. My stupid boss still…