文章转载自:http://blog.csdn.net/think2me/article/details/39056379 博主说未经本人允许,不得转载,那就不贴了,拷贝关键部分作备忘 1. 暂存区是Git非常重要的概念,弄明白了暂存区,就弄明白了Git的很多操作到底干了什么. 2. git 管理的是修改,不是文件,所以commit只会提交已经add的暂缓区的修改 3. 修改:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file. 4 .修改:当…
Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理. [1] 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件. 分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库. git的功能特性 从一般开发者的角度来看,git有以下功能: 1.从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上. 2.在自己的机器…
分布式集中式 CVS及SVN都是集中式的版本控制系统 , 而Git是分布式版本控制系统 集中式版本控制系统,版本库是集中存放在中央服务器的, 而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活, 干完活了,再把自己的活推送给中央服务器. 中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆. 分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库, 这样,你工作的时候,就不需要联网了,因为版…
前言 前面只是大概的介绍了一点基础的东西,接下来会更加深入的去了解一下Git. 一.Git的工作区.暂存区和版本库之间的区别和联系 1)工作区 在PC中能看得到的创建的一个管理仓库的目录.比如目录下GitTest里的文件(.git隐藏目录版本库除外).或者以后需要再新建的目录文件等等都属于工作区范畴. 2)版本库(repository) 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库. Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还…
回顾之前学过的命令: git init // 初始化一个项目 git add // 将文件交给工作区 git commit // 提交修改 查看提交日志: git log // 查看提交日志 git log --stat // 每次提交文件的变更统计 可进行空的提交,也就是不提交任何文件的修改: git commit --allow-empty 比较差异: git diff // 查看修改后的文件于版本库中文件的差异 修改不能直接提交么? 对于已经commit到版本库中的文件,如果再修改的话,不…
什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”. 所以,创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录: $ mkdir learngit $ cd learngit $ pwd /Users/michael/learngit pwd命令用于显示当前目录.在我的Mac上,这个仓库位于/Users/m…
相关文档 — 更多 Git 基础培训.ppt GIT 使用经验.ppt GIT 介绍.pptx GIT 分支管理是一门艺术.docx Eclipse上GIT插件EGIT使用手册.docx git/github学习笔记.doc git 版本控制系统.docx Git开发管理之道.pdf Git内部培训资料.pptx Git权威指南-第5篇-第32章-Gerrit.pdf Gitolite 构建 Git 服务器.pdf 版本控制之道 - 使用Git.pdf Git使用指南(中文).pdf Git-C…
一.GIT CLONE最常用的有如下几个 1.最简单直接的命令:git clone xxx.git 2.如果想clone到指定目录:git clone xxx.git “指定目录” 3.clone时创建新的分支替代默认Origin HEAD(master):git clone -b [new_branch_name] xxx.git 4.clone 远程分支 + git clone 命令默认的只会建立master分支,如果你想clone指定的某一远程分支(如:dev)的话,可以如下: – A.…
1.Git简介 关于Git是什么,阅读博客Git简介 2.Git 基础 Git命令很多,常用命令如下图 Workspace:工作区 Index/Stage :暂存区 Local Repository: 本地仓库 Remote Repository:远程仓库 工作区.暂存区和本地仓库,逻辑上是本地计算机.当我们新建一个文件时,文件位于工作区,处于已修改(modified)状态,表明文件已进行了修改,但还没有提交保存:通过命令git add 将其添加到暂存区,文件是已暂存(staged)状态,表示把…
4. 处理冲突 4.1 向远程仓库push时无法提交成功,提示在push前应该先pull 如图所示: 有可能是因为远程仓库的版本与本地仓库的版本不一致,所以应先git pull将远程仓库的内容合并到本地, 然后再git push origin master将本地的更新推到远程仓库中. 4.2 如何处理冲突: 有的时候在pull时会产生冲突,如图所示,里面提示在合并HelloWorld.java的时候,产生冲突 这时候打开你的HelloWorld.java时,会发现如下内容: public cla…
发布系统Git使用指南 --the Git Way to Use Git 背景 ​ 有文章曾归纳,Git是一套内容寻址文件系统,意思是,Git的核心是存储键值对^[1]^.显然,这样的形式不利于普通人类使用. 通常情况下我们使用的Git命令,都被称作高级命令(例如pull.merge等),区别于底层的低级命令,两种命令分别对应于Git文档中出现Porcelain.Plumbing(第一次在文档见到这些词有没有很困惑!). 高级命令大都有易读参数与翔实输出,可以认为是由低级命令封装,方便人使用.那…
git个人学习总结: git是一个管理代码的版本控制系统,用git init创建一个git可以管理的仓库,这个仓库里有一个工作区,我们最基本的那些命令操作都是在工作区完成,在创建仓库的时候,在工作区里git又自动创建了一个.git文件,这个文件不属于工作区,是git的一个版本库,在版本库里有一个暂存区和一个git自动创建的分支,当我们通过git add向仓库添加文件时,实际上就是添加到了暂存区上面,当我们用git commit来提交全部文件时,实际上是从暂存区把文件上传到了分支上面. 为什么gi…
1 获取Git仓库 在现有目录中初始化仓库 git init 克隆现有的仓库 git clone https://github.com/yangwang12345/node_test.git Git 支持多种数据传输协议 https:// 协议 git:// 协议 SSH 传输协议 : user@server:path/to/repo.git 2 记录每次更新到仓库 每一个文件都不外乎这两种状态:已跟踪(tracked)或未跟踪(untracked) 初始化一个仓库之后,文件处于未修改(Unmo…
以前用了很久的totoiseSVN,显然不够高大上,开发界的版本装x利器还得是git.然而git的命令行对没怎么用过linux的人可能觉得还不如用gitGUI,可是当你知道sublime可以集成git插件的时候,你就会改变自己的想法了,真心方便. 1. 安装git客户端,最常用的msysgit,具体步骤就略过了,大家自行搜索吧. 2. sublime安装git插件 Ctrl+shift+P,调出 install package面板,然后搜索git,回车安装 3. 配置git公钥,此处以gitHu…
1新建一个存储git的文件夹,命令是: toto@toto-K45VD:~$ mkdir gitfolder 2初始化一个git仓库,命令是: toto@toto-K45VD:~$cd gitfolder/ toto@toto-K45VD:~/gitfolder$ls toto@toto-K45VD:~/gitfolder$git init 初始化空的 Git版本库于 /home/toto/gitfolder/.git/ 注意:如果是第一次使用git,还要对git对进行如下配置 git conf…
前言: git是分布式的版本库控制系统,它能方便你将自己的代码寄存于远程服务器上,从而实现集体合作开发.git有GUI 图形界面,然而使用终端命令仍是主流.以下基于Ubuntu系统操作git(其方式也适用于windows等系统),实现git的基 本安装,关联github账户,本地创建及更改库,分支,连接远程版本库. 本文章讲解了一般需要用到的命令,以及更重要的——git管理代码的机制.由于本人知识有限,若有错误,望 指出和谅解. 第一节  git安装: ubuntu下的安装: ubuntu默认没…
撤销修改:git checkout -- filename :将工作区文件回到最近一次add 或者 commit的状态 撤销修改分为三种情况: 1.未提交至暂存区 使用git checkout -- filename 将master的文件替换到工作区 2.已提交至暂存区 ① 使用git reset HEAD filename 撤销暂存区的修改,恢复暂存区的文件与master分支一致 ② 再使用git checkout -- filename 将暂存区的文件替换到工作区 3.已提交至master分…
1.前言 git包含四种对象文件: blob tree commit tag(目前没用到,暂时忽略) 2. git对象的关系   图 git三种对象关系   粗略一看,可以大致感觉出blob类似于文件,而tree类似于文件夹,而commit则是囊括这一大堆东西的一个对象. 3.SHA-1算法 SHA-1算法具体怎么计算,可以自行google.这里只说一下该算法在git数据存储中的应用.我们可以用git提供的命令来计算一个文件的SHA-1值: echo 'test content' | git h…
0.前言 本文主要对git常用命令的工作原理做一个详细的说明,常用命令主要包括: 1.git add git add相关命令很简单,主要实现将工作区修改的内容提交到暂存区,交由git管理. 2. git commit git commit主要实现将暂存区的内容提交到本地仓库,并使得当前分支的HEAD向后移动一个提交点. 3. git branch 关于分支,大概有展示分支,切换分支,创建分支,删除分支这四种操作. 4. git merge merge命令把不同的分支合并起来.如下图,在实际开发中…
0.前言 一般来说,日常使用只要记住下图6个命令,就可以了.但是熟练使用,恐怕要记住60-100个命令. 上图分别为: Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 6个命令分别是: git pull:从远程仓库将代码同步到工作区 git fetch/clone:从远程仓库同步代码到本地仓库 git checkout:用本地仓库代码同步工作区 git add:将工作区代码加到暂存区,实现git管理 git co…
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001374831943254ee90db11b13d4ba9a73b9047f4fb968d000 首先需要知道工作区(working diretory)和暂存区(Stage)这两个概念.工作区的概念不仅包含你实际更改的文件还应当包括当前修改但未add存入暂存区的文件变化信息,暂存区的作用则是临时存储文件的变化信息,在git ad…
终于搞定,mac自己作为git服务器,mac也是客户端,如何免登 从另外一个linux服务器的上传公钥得到提示 ssh-copy-id -i ~/.ssh/id_rsa.pub git@192.168.1.111 公钥是传到了mac的 /Users/git/.ssh/authorized_keys 所以其他的各个客户端的包括(mac自己)的pub公钥,都要复制到这个文件里,就可以免密码登陆了 ========================================== (原文)http:…
Git 分支 几乎每一种版本控制系统都以某种形式支持分支.使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作.在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录的完整副本,对大型项目来说会花费很长时间. 有人把 Git 的分支模型称为“必杀技特性”,而正是因为它,将 Git 从版本控制系统家族里区分出来.Git 有何特别之处呢?Git 的分支可谓是难以置信的轻量级,它的新建操作几乎可以在瞬间完成,并且在不同分支间切换起来也差不多一样快.和许多其他版本控制系统…
git log -l -pretty=raw // 查看日志 -l是干啥的 git log -pretty=raw // git cat-file -t 哈希值 // 查看id的类型 不知道为啥这里我不一样:即使用git log -l --pretty=raw也只是出现commit的,但是git cat-file -p 哈希值则会出现tree和parent. root@tuhooo:~/workspace/demo # git log commit ac31089960196a531c277dc…
对于更改操作的处理 使用git status命令可以看到当前工作区的状态: git status // 查看工作区的状态 // 对于已经git add工作区中文件 git reset HEAD <file> ... // 已经添加但是还没有commit的更改,通过这命令可以取消add git commit <file> // 将更改加入版本库中 // 对于还没有add的工作区中的文件 git checkout -- <file> // 将commit后的数据检出替换工作…
不同参数下git diff输出并不相同,理解了工作区,暂存区和版本库的关系之后就很容易理解diff了. 工作区.暂存区和版本库的目录树浏览 清除工作区中未被git管理的文件 git clean -fd 查看暂存区和HEAD中的目录树 git ls-tree -l HEAD 其中: 参数-l可以显示文件大小 第一个字段时文件的属性(rw-r--r--,644) 第二个字段说明时Git对象库中的一个blob对象(文件) 第三个字段时该文件在对象库中对应的ID——40位的SHA1哈希值 第四个字段时文…
git add -A和 git add .   git add -u在功能上看似很相近,但还是存在一点差别 git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件. git add -u :他仅监控已经被add的文件(即tracked file),他会将被修改的文件提交到暂存区.add -u 不会提交新文件(untracked file).(git add --update的缩写) gi…
git add -A和 git add . git add -u在功能上看似很相近,但还是有所差别. git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件. git add -u :他仅监控已经被add的文件(即tracked file),他会将被修改的文件提交到暂存区.add -u 不会提交新文件(untracked file).(git add --update的缩写) git a…
一.Git创建仓库 版本库:代码仓库(repository),可以理解为一个项目的目录,在这个项目的目录中Git对每个文件进行管理,记录每个文件的增删改查记录,并能够追踪历史,在需要的时候可以回退到某个“历史瞬间”. 可以通过 Git init 命令来初始化代码仓库,将一个目录初始化为一个Git可以管理的仓库. 也可以通过 Git clone <url> 将 <url> 中的代码仓库拷贝到本地. 二.基本操作 基本操作按照操作流程来介绍,Git的操作流程分为以下几个 1. 将修改的…
查看版本 git --version # 查看git的版本 设置或者查看用户名和邮箱 git config --global user.name "tuhooo" // 如果后面没有用户名就是查看, 有的话就是设置 git config --global user.email tuhooo@.com // 如果后面没有邮箱就是查看, 有的话就是设置 初始化一个项目 mkdir you_project_dir // 新建一个目录,然后进去 git init // 初始化 git init…