前面博客 Git学习系列之Git基本操作推送项目(图文详解) 当然,如果多人协作,或者多个客户端进行修改,那么我们还要拉取(Pull ... )别人推送到在线仓库的内容下来. 大神们是不推荐使用 pull 命令进行拉取的, 因为封装了细节(git pull == git fetch + git merge). 对于这群更喜欢用命令行的神们来说, 一切在掌控之中是一种强迫症!!!(开个玩笑, 其实项目成员复杂,约定不好以后,pull 确实会有很多问题,会坑人.) 常规使用,我们执行 git pul…
前面博客 Git学习系列之Git基本操作提交项目(图文详解) 如果完成到一定程度,那么可以推送到远端在线仓库. 推送之前,请确保你已经设置了全局的 user.name 和 user.email, 如果没有设置,或者不想使用全局的信息,可以在当前项目下设置: F:\GIT_ALL\LispGentleIntro>git config user.name "renfufei" F:\GIT_ALL\LispGentleIntro>git config user.email &q…
前面博客 Git学习系列之Git基本操作克隆项目(图文详解) 然后可以 cd 切换到 LispGentleIntro 目录, 新增或者修改某些文件.这里只是模拟一下操作, 实际情况可能是 使用 Eclipse 导入项目(不要拷贝,Copy...)进行一些编辑, 然后将当前目录下的所有有变动的文件告诉索引库,接着提交到本地仓库. F:\GIT_ALL>cd LispGentleIntro F:\GIT_ALL\LispGentleIntro>echo some content >>…
不多说,直接上干货 前面,谈及了 Git学习系列之Git 的优势有哪些? 缺点: (1)资料少(起码中文资料很少). (2)学习周期相对而言比较长. (3)不符合常规思维. (4)代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息. 欢迎大家,加入我的微信公众号:大数据躺过的坑     免费给分享       同时,大家可以关注我的个人博客:    http://www.cnblogs.com/zlslch/   和     http://www.cnblogs.com/l…
PS:本文转载于(http://blog.jobbole.com/50603/),本文由 伯乐在线 - 吴鹏煜 翻译. 英文出处:(http://sixrevisions.com/web-development/git-tips/) 当我刚刚开始使用Git的版本控制时,我根本不确定我付出那么多时间是不是会得到回报.Branch.Stage.Stash,这些Git名词对我来说都非常陌生. 而今天的我已不能想象生活没有Git会变成什么样.Git不仅提供了我非常需要的版本控制功能,还让我变成一个更优秀…
对于更改操作的处理 使用git status命令可以看到当前工作区的状态: git status // 查看工作区的状态 // 对于已经git add工作区中文件 git reset HEAD <file> ... // 已经添加但是还没有commit的更改,通过这命令可以取消add git commit <file> // 将更改加入版本库中 // 对于还没有add的工作区中的文件 git checkout -- <file> // 将commit后的数据检出替换工作…
取得项目的Git仓库 有两种方式取得Git项目仓库.第一种是在现存的目录下,通过导入所有文件来创建新的Git仓库.第二种是从已有的Git仓库克隆出一个新的镜像仓库. 在工作目录中初始化新仓库  要对现有的某个项目开始用Git管理,只需到此项目所在的目录,执行: git init 初始化后,在当前目录下会出现一个名为.git的目录,所有Git需要的数据和资源都存在这个目录中. 如果当前目录下有几个文件想要纳入版本控制,需要先用git add命令告诉Git开始对这些文件进行跟踪,然后提交: git…
前言 现在主流IDE里,都集成git了. https://git-scm.com/docs 史上最浅显易懂的Git教程! 为什么要编写这个教程?因为我在学习Git的过程中,买过书,也在网上Google了一堆Git相关的文章和教程,但令人失望的是,这些教程不是难得令人发指,就是简单得一笔带过,或者,只支离破碎地介绍Git的某几个命令,还有直接从Git手册粘贴帮助文档的,总之,初学者很难找到一个由浅入深,学完后能立刻上手的Git教程. 既然号称史上最浅显易懂的Git教程,那这个教程有什么让你怦然心动…
不多说,直接上干货! 史上最浅显易懂的Git教程! 为什么要编写这个教程?因为我在学习Git的过程中,买过书,也在网上Google了一堆Git相关的文章和教程,但令人失望的是,这些教程不是难得令人发指,就是简单得一笔带过,或者,只支离破碎地介绍Git的某几个命令,还有直接从Git手册粘贴帮助文档的,总之,初学者很难找到一个由浅入深,学完后能立刻上手的Git教程. 既然号称史上最浅显易懂的Git教程,那这个教程有什么让你怦然心动的特点呢? 首先,本教程绝对面向初学者,没有接触过版本控制概念的读者也…
本系列文章部分原理和命令相关内容是从 https://git-scm.com/book/zh/v2 摘录,软件实际使用是总结自己的实践经验成文. 1. 关于版本控制 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 本地版本控制系统 许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别. 这么做唯一的好处就是简单,但是特别容易犯错. 有时候会混淆所在的工作目录,一不小心会写错文件或者覆盖意想外的文件. 为了解决这个问题,人们很久以前就…
GIT学习 git工作区.暂存区.本地库.远程库 工作区:实际上我们工作的地方,进行写代码或者文件的地方. 暂存区:我们执行了git add 操作之后,就会被提交到暂存区. 本地库:其实最后我们需要执行这一步操作,git commit 到本地库中,才表示完结了. 但是大家经常看到还有push操作,不是应该还有远程库吗?其实在git的理念中,分布式的git其实本来是不需要这个远程库的,git的协同只需要多个用户之间协同其实就是可以的,但是如果有一个稳定的远程库的话,会让我们的协同起来更快速,并且更…
本文出自   http://blog.csdn.net/shuangde800 --------------------------------------------------------------------------------- 本文内容: 初始化一个新的代码仓库,做一些适当配置: 开始或停止跟踪某些文件: 暂存或提交某些更新. 让 Git 忽略某些文件,或是名称符合特定模式的文件: 既快且容易地撤消犯下的小错误: 浏览项目的更新历史,查看某两次更新之间的差异: 如何从远程仓库拉数…
1.背景        git基础打算分两部分来说,一部分是对于本地项目的管理,第二部分是对于远程代码仓库的操作. git运行本地项目管理包含对于相关文件的追踪,暂存区的比較分析,提交,撤销等功能. 2.本地项目管理        首先mkdir一个目录,叫做GitTestFile,然后运行以下代码.创建git的管理配置 git init     接着增加例如以下代码,git add . ,把项目增加跟踪队列 git add . 能够用git status查看状态    增加readme文件,v…
一.Git与其他版本控制系统的差别 Git 只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异.这类系统每次记录有哪些文件作了更新,以及都更新了哪些行的什么内容.如下图,其他系统在每个版本中记录着各个文件的具体差异: Git 并不保存这些前后变化的差异数据.实际上,Git 更像是把变化的文件作快照后,记录在一个微型的文件系统中.每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引.为提高性能,若文件没有变化,Git 不会再次保存…
1.背景                最早用github的时候,我傻傻的问舍友大神,git里面的branch是干什么的,他用了非常直白的解释,我至今还记得."branch就是你能够自己建立一个分支,随便乱搞而不影响整个项目".git分支应该是git最nb的特色吧,分支的建立和合并都十分方便.               大体的原理是这种(图借用progit),比方说我们有一个master,另一个分支是testing,git用head指针标记哪个分支正在被运行操作. 2.分支管理  …
在开始Git之旅之前,我们需要设置一下Git的配置变量. 1.告诉Git当前用户的姓名和邮件地址,配置用户名和邮件地址将在版本库提交时用到. 例子: -------------------------------------------------------------- git config --global user.name "feifei" git config --global user.email feifei@gmail.com --------------------…
提示出错信息:fatal: remote origin already exists. 解决办法如下: 1.先输入$ git remote rm origin 2.再输入$ git remote add origin git@github.com:djqiang/gitdemo.git 就不会报错了! 3.如果输入$ git remote rm origin 还是报错的话,error: Could not remove config section 'remote.origin'. 我们需要修改…
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 diff输出并不相同,理解了工作区,暂存区和版本库的关系之后就很容易理解diff了. 工作区.暂存区和版本库的目录树浏览 清除工作区中未被git管理的文件 git clean -fd 查看暂存区和HEAD中的目录树 git ls-tree -l HEAD 其中: 参数-l可以显示文件大小 第一个字段时文件的属性(rw-r--r--,644) 第二个字段说明时Git对象库中的一个blob对象(文件) 第三个字段时该文件在对象库中对应的ID——40位的SHA1哈希值 第四个字段时文…
回顾之前学过的命令: git init // 初始化一个项目 git add // 将文件交给工作区 git commit // 提交修改 查看提交日志: git log // 查看提交日志 git log --stat // 每次提交文件的变更统计 可进行空的提交,也就是不提交任何文件的修改: git commit --allow-empty 比较差异: git diff // 查看修改后的文件于版本库中文件的差异 修改不能直接提交么? 对于已经commit到版本库中的文件,如果再修改的话,不…
我们难免会因为种种原因执行一些错误的commit / push,git提供了revert命令帮助程序员修复这样的错误. 举个例子,下图是git commit 的历史记录 git revert 命令会通过一个新的commit 来使仓库倒退一个commit,在上例中,如果程序员想要revert 最新的那次commit (Updated to Rails 2.3.2 and edge hoptoad_notifier) $ git revert HEAD Finished one revert. [m…
查看版本 git --version # 查看git的版本 设置或者查看用户名和邮箱 git config --global user.name "tuhooo" // 如果后面没有用户名就是查看, 有的话就是设置 git config --global user.email tuhooo@.com // 如果后面没有邮箱就是查看, 有的话就是设置 初始化一个项目 mkdir you_project_dir // 新建一个目录,然后进去 git init // 初始化 git init…
有时候接手一份新代码时,看到某些文件的改动,但不清楚这个改动的作者和原因,想查看该文件的具体提交历史记录. 今天一个同事是这样做的,直接敲git log命令,然后再使用vim命令的搜索关键字的方法来查看该文件的提交记录,如下所示: 例如:我想查看frameworks/base/packages/SystemUI/AndroidManifest.xml该文件的提交记录,敲了git log命令后,直接按"/"然后加入该文件的路径,后就可以搜索该文件名作为关键字,然后按N和Ctrl+N进行上…
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013743256916071d599b3aed534aaab22a0db6c4e07fd0000 1 查看git 是否安装: git ,如果提示没有安装; ubantu 一条命令安装sudo apt-get install git 2 不是ubantu的话,用源码安装: 解压后  依次输入命令: ./config,make,su…
测试如下: 先将远程的代码修改,之后更新: 之后将工作区修改的代码(这里修改的代码跟远程修改的位置一样)提交到本地,之后拉取远程的代码,会发现有冲突: Accept Yours 就是直接选取本地的代码,覆盖掉远程仓库的 Accept Theirs 是直接选取远程仓库的,覆盖掉自己本地的 选择Merge,自己手动行进选择.修改,之后会弹出类似下面这个框: 这里左边部分本地仓库的代码,右边部分是远程仓库的代码,中间的result就是修改之后的结果.左下角的Accept Left 和Accept Ri…
版本控制这块,一直用SVN.感觉挺好用,比VSS要好用些.不过,近期在网上,又谈到时下很流行的Git.就想看看Git到底是何方神圣.趁着五一在家无事,就静下心来,简单研究一下. 当下,网络上提供的基于Git代码托管服务的网站,流行的有下面几个: https://gitcafe.com/ https://code.csdn.net/ http://git.oschina.net/ http://www.github.com/ 以https://code.csdn.net/为例,演示如何把本地代码传…
不多说,直接上干货! 想必,能进来看我写的这篇博文的朋友,肯定是了解过. 比如SVN的操作吧,最常见的是 检出(Check out ...), 更新 (Update ...), 以及 提交(Commit ...); 相当于有一个服务器端, 可以多个客户端进行访问和操作. Git是SVN以后的新一代的版本控制系统/协议.适合于大规模的开源软件多人协作的开发.有一个总仓库(如GitHub,CSDN,OSchina等提供),每个客户端都有一个本地仓库(这个本地仓库有点对应于SVN的服务端仓库),以及一…
不多说,直接上干货! Git和TortoiseGit的区别: TortoiseGit的安装和使用依赖Git. Git有且只有一个,就是linux最初创建的那个叫做Git的程序.现在的维护者的名字我懒得去查了. 最初的Git,只能运行在*nix系统上,然后,有人为它做了windows兼容的修改,Git for windows的具体维护工作应该是德国的一家公司的几个人在负责,没错,就是我们看到的那个msysGit,一个基于windows上虚拟unix环境mGw的Git.早期还有一个单独的window…
不多说,直接上干货! Git的功能特性,从一般开发者和主开发者的角度来进行剖析. Git的功能特性: 从一般开发者的角度来看,Git有以下功能: 1.从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上. 2.在自己的机器上根据不同的开发目的,创建分支,修改代码. 3.在单机上自己创建的分支上提交代码. 4.在单机上合并分支. 5.把服务器上最新版的代码fetch下来,然后跟自己的主分支合并. 6.生成补丁(patch),把补丁发送给主开发者. 7.看主开发者的反馈,如果主开发者发现两个…
Git .CVS.SVN比较 项目源代码的版本管理工具中,比较常用的主要有:CVS.SVN.Git 和 Mercurial  (其中,关于SVN,请参见我的博客:SVN学习系列) 目前Google Code支持SVN.Git.Mercurial三种方式,例如: linux-kernel-source(Git 方式).sdk-java(SVN方式),那么它们各有什么区别呢?   1.Git与CVS 的区别  分支更快.更容易. 支持离线工作:本地提交可以稍后提交到服务器上. Git 提交都是原子的…