工作区下的.git文件夹其实是Git的版本库,Git的版本库里存了很多东西,其中最重要的就是称为 stage 的暂存区,还有Git为我们自动创建的第一个分支 master ,以及指向master的一个指针叫 HEAD . 把文件往Git版本库里添加的时候,是分两步执行的: 第一步是用 git add 把文件添加进去,实际上就是把文件修改添加到暂存区: 第二步是用 git commit 提交更改,实际上就是把暂存区的所有内容提交到当前分支. 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区…
本文主要记录了git中,错误的撤销和文件的删除. 撤销修改 这里有3中情况 改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file. 不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了1,第二步,按照1操作. 已经提交了不合适的修改到版本库时,想要撤销本次提交,可以版本回退,不过前提是没有推送到远程库. //第一种撤销:工作区撤销 ubuntu@myubuntu:~/j…
1.管理修改 什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改. 为什么说Git管理的是修改,而不是文件呢?我们还是做实验. 第一步,对readme.txt做一个修改,比如加一行内容: $ cat readme.txt Git is a distributed version control system. Git is free software distributed un…
使用 git checkout -- file可以撤销工作区的修改 一种是修改后还没有放到暂存区,撤销修改回到和版本库一模一样的状态 lesson.txt文件已经提交到版本库了,内容如图. ​ 修改一下,保存后.git diff对比看下 ​ ​ 然后git checkout -- lesson.txt ​ 可以看到内容变回来了. 另一种是已经提交到了暂存区又修改了,撤销修改就退回到了提交暂存区后的状态 接着上面直接修改一下lesson.txt,保存后git add添加到暂存区.不放心可以先git…
Git跟踪并管理的是修改,而非文件.新增文件,修改一行,删除一点,都算是修改. 在.git工作区新增一个文件,test.txt,输入test git ...然后git add ​ ​ add之后修改test.txt内容,加个123 然后git commit ​ 使用git diff HEAD -- test.txt对比工作区和分支内容 --后面一定要有个空格 ​ 可以看到第二次修改的内容并没有被提交…
本文内容参考了廖雪峰老师的博文,并做了适当整理,方便大家查阅. 原帖地址 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学习笔记(2):时光机穿梭与远程仓库 撤销操作 1.GIT如何跟踪修改 在我们修改了代码内容后,执行了git add和git commit命令来将其交由Git进行版本控制.我们前面举的例子是这样的,git add将文件加入暂存区(菜篮子),git commit一并提交到版本库(柜台结账).如果我们想拿其他的菜,但是不加入篮子,Git是无法对其进行跟踪的. 比如我们队Test.java第一次修改后,执行git add命令将第一次修改版本加入了暂存区,然后又修改了Test.java,但是com…
本文主要记录了Git服务器的搭建,以及一些其他的配置,和最后的小总结. Git远程仓库服务器 其实远程仓库和本地仓库没啥不同,远程仓库只是每天24小时开机为大家服务,所以叫做服务器.我们完全可以把自己的某台多余的机器设置成不关机状态. 但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用. 搭建Git服务器需要准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,这样,通过几条简单的apt命令就…
一般的操作流程 1.pull 王小坤与另一个同事张大炮一起开发一个项目,张大炮昨天修改了数据库读写的api,优化了执行速度,并把read()函数改名成了Read(),下午下班之前把这些代码push到服务器上了. 王小坤一直在做设备驱动的相关工作,昨天也刚刚修改了driver.c文件中的几个函数,加班太晚就只是commit了一下,没push到服务器.今天早上听说张大炮已经把数据库读写的api改了,那么现在王小坤直接推到服务器,是推送不上去的,因为张大炮修改的那部分代码王小坤本地并没有,而王小坤本地…
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学习笔记(3):分支管理 何谓分支 GIT是如何存储数据的 GIT不是存储文件差异或者变化量,而是一系列文件的快照.在Git提交时,会保存一个提交(commit)对象,该对象包含一个指向暂存内容快照的指针,它大概是这样子的. 三个表示文件快照内容的 blob 对象:一个记录着目录树内容及其中各个文件对应 blob 对象索引的 tree 对象:以及一个包含指向 tree 对象(根目录)的索引和其他提交信息元数据的 commit 对象. 多个提交对象之间是链接关系,每个提交对象会指向上一个提交…
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 最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上跑.不过,慢慢地有人把它移植到了Windows上.现在,Git可以在Linux.Unix.Mac和Windows这几大平台上正常运行了. 在Linux上安装Git 首先,你可以试着输入 git ,看看系统有没有安装Git: $ git The program 'git' is currently not installed. You can install it by typing: sudo…
本文参考廖雪峰老师的博客进行总结,完整学习请转廖雪峰博客 一.版本回退 1.git log提交日志 在git中可以通过个git log 命令显示从最近到最远的提交日志. $ git log commit 8d6d5e1bf04960a41e31fcae166bac74dc6173ea (HEAD -> master) Author: bryce <bryceyx@gmail.com> Date: Sun Aug 13 14:37:20 2017 +0800 it is amazing c…
安装Git Windows: 进入官网下载或百度网盘下载 Git(V2.23_x64) 提取码:uf2x Ubuntu: sudo apt-get -install git 安装完成之后打开git命令行(Ubuntu命令行即可操作) 输入以下代码 #查询版本号 git --version #设置你的姓名(最好是英文) git config --global user.name “kimalittlestar” #设置你的邮箱 git config --global user.email “kim…
远程库的使用 前面说到的都是git在本地的操作,那么实际协作开发过程中我们肯定是要有一个远程版本库作为项目的核心版本库,也就是投入生产使用的版本.这里我们以 Github为例.Github是一个开放的git远程服务器,首先我们先注册一个github账户,如何注册就不在这里.说了绑定本地版本库与Github远程库有两种方式,一种是以ssh协议连接,在这方式下我们需要先绑定一个ssh key,这个在下面会说.还有一种是https协议,但是使用https速度慢会比慢,而且每次推送(push)都必须输入…
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较多,但命令很容易就忘记了,于是整理下,大多整理与一些文档和他人博客 在当前目录新建建一个纯git代码库 $ git --bare init 在当前目录新建一个Git代码库 $ git init 新建一个目录,将其初始化为Git代码库 $ git init [project-name] 下载一个项目和它的整个代码历史 $ git clone [url] Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置). 显示当前的Git配…
一. 创建与合并分支 1. 从master分支创建dev分支并切换到dev分支: git checkout master git checkout -b dev 其中,git checkout -b dev 等价于: git branch dev git checkout dev 查看本地当前的分支,分支前面带“*”表示当前分支,剩下的分支表示本地有的分支:  git branch 查看远程全部的分支,白色的表示本地有的,红色的表示本地没有,仅在远程存在: git branch -a 2.修改代…
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…
工作区内容修改了, 但是并未add到暂存区, 想 回退到上一个版本 在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 prefers SVN. 纠正这…
Git学习笔记(二) 突然发现,学习新知识新技能,都得经常温故使用,这样才能日益精进.最近学习的Git是因为加入了课题组,在学习做一些后台,由于后台开发会牵扯到多人开发,所以学会Git这一代码管理工具会很有用.但是一周下来,目前我还没用到Git,结果,Git代码几乎忘干净了... 接着整理,还是老规矩,博客其实是我的学习笔记,将学习的知识整理一下,以便以后查阅.在此,学习Git主要还是通过廖老师的教程,参见https://www.liaoxuefeng.com/wiki/896043488029…
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学习笔记(4):远程分支 远程分支 远程分支是什么 远程分支是对远程仓库中的分支的索引.它们是一些无法移动的本地分支:只有在GIT进行网络交互时才会更新.远程分支就是书签,提醒着你上次连接远程仓库是上面各分支的位置. 我们用 (远程仓库名)/(分支名) 这样的形式表示远程分支.我们来举一个例子,假如你从GITHUB上克隆了一个项目到本地,GIT会自动为你将次远程仓库命名为origin,并且下载其中的所有数据,建立一个指向它的master分支的指针,在本地命名为origin/master,但…
目录: Java NIO 学习笔记(一)----概述,Channel/Buffer Java NIO 学习笔记(二)----聚集和分散,通道到通道 Java NIO 学习笔记(三)----Selector Java NIO 学习笔记(四)----文件通道和网络通道 Java NIO 学习笔记(五)----路径.文件和管道 Path/Files/Pipe Java NIO 学习笔记(六)----异步文件通道 AsynchronousFileChannel Java NIO 学习笔记(七)----N…
自然,你是不会犯错的.不过现在是凌晨两点,你正在赶一份工作报告,你在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…
笔者在本地终端进行 git 工作目录的相关处理时,遇到由于某种情况需要使用 git checkout 命令切换到其他分支的情景.此时,若已经对当前分支做了一定的修改,则直接切换分支时 git 会提示错误信息.本文即总结下笔者目前了解和使用的 git 切换到其他分支冲突时的解决方案. 问题 当本地遇到特殊情况,需要切换到其他分支时,当前分支可能会存在以下两种可能: (1) 对当前分支并未进行任何修改,从而可以直接使用 git checkout 命令切换到其他分支. git checkout tes…
初次接触git,为了记忆深刻,把学习的简单流程记录下来. 本文记录了Git在Ubuntu上的安装,配置,以及创建版本库和往库中添加文件的过程. 1.Git的安装:(Ubuntu-Linux非常友好的安装提示) ubuntu@ubuntu-HP-Pro--MT:~$ git //查看git是否安装 程序“git”尚未安装. 您可以使用以下命令安装: sudo apt-get install git ubuntu@ubuntu-HP-Pro--MT:~$ sudo apt-get install g…