摘要: 终于到了期末总结的时刻了!经过几天的学习,相信你对Git已经初步掌握。一开始,可能觉得Git上手比较困难,尤其是已经熟悉SVN的童鞋,没关系,多操练几次,就会越用越顺手。Git虽然极其强大,命令繁多,但常用的就那么十来个,掌握好这十几个常用命令,你已经可以得心应手地使用Git了。友情附赠国外网友制作... 阅读全文
posted @ 2015-01-27 11:23 GisClub 阅读(146) 评论(0) 推荐(0)
摘要: 在远程仓库一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改。GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。搭建Gi... 阅读全文
posted @ 2015-01-27 11:22 GisClub 阅读(272) 评论(0) 推荐(0)
摘要: 有没有经常敲错命令?比如git status?status这个单词真心不好记。如果敲git st就表示git status那就简单多了,当然这种偷懒的办法我们是极力赞成的。我们只需要敲一行命令,告诉Git,以后st就表示status:$ git config --global alias.st st... 阅读全文
posted @ 2015-01-27 11:21 GisClub 阅读(666) 评论(0) 推荐(0)
摘要: 有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,每次git status都会显示“Untracked files ...”,有强迫症的童鞋心里肯定不爽。好在Git考虑到了大家的感受,这个问题解决起来也很简单,在Git工作区的根目录下创建一个特... 阅读全文
posted @ 2015-01-27 11:20 GisClub 阅读(220) 评论(0) 推荐(0)
摘要: 在安装Git一节中,我们已经配置了user.name和user.email,实际上,Git还有很多可配置项。比如,让Git显示颜色,会让命令输出看起来更醒目:$ git config --global color.ui true这样,Git会适当地显示不同的颜色,比如git status命令:文件名... 阅读全文
posted @ 2015-01-27 11:19 GisClub 阅读(138) 评论(0) 推荐(0)
摘要: 我们一直用GitHub作为免费的远程仓库,如果是个人的开源项目,放到GitHub上是完全没有问题的。其实GitHub还是一个开源协作社区,通过GitHub,既可以让别人参与你的开源项目,也可以参与别人的开源项目。在GitHub出现以前,开源项目开源容易,但让广大人民群众参与进来比较困难,因为要参与,... 阅读全文
posted @ 2015-01-27 11:18 GisClub 阅读(553) 评论(0) 推荐(0)
摘要: 如果标签打错了,也可以删除:$ git tag -d v0.1Deleted tag 'v0.1' (was e078af9)因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。如果要推送某个标签到远程,使用命令git push origin :$ git push... 阅读全文
posted @ 2015-01-27 11:17 GisClub 阅读(202) 评论(0) 推荐(0)
摘要: 在Git中打标签非常简单,首先,切换到需要打标签的分支上:$ git branch* dev master$ git checkout masterSwitched to branch 'master'然后,敲命令git tag 就可以打一个新标签:$ git tag v1.0可以用命令git t... 阅读全文
posted @ 2015-01-27 11:16 GisClub 阅读(247) 评论(0) 推荐(0)
摘要: 发布一个版本时,我们通常先在版本库中打一个标签,这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支很像对不对?但是分支可以移动,... 阅读全文
posted @ 2015-01-27 11:15 GisClub 阅读(174) 评论(0) 推荐(0)
摘要: 当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin。要查看远程库的信息,用git remote:$ git remoteorigin或者,用git remote -v显示更详细的信息:$ git remote -v... 阅读全文
posted @ 2015-01-27 11:14 GisClub 阅读(262) 评论(0) 推荐(0)
摘要: 软件开发中,总有无穷无尽的新的功能要不断添加进来。添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支。现在,你终于接到了一个新任务:开发代号为Vulcan的新功能,该功... 阅读全文
posted @ 2015-01-27 11:13 GisClub 阅读(489) 评论(0) 推荐(0)
摘要: 软件开发中,bug就像家常便饭一样。有了bug就需要修复,在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。当你接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支issue-101来修复它,但是,等等,当前正... 阅读全文
posted @ 2015-01-27 11:12 GisClub 阅读(319) 评论(0) 推荐(0)
摘要: 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。下面我们实战一下--no-ff方式的git merge:首... 阅读全文
posted @ 2015-01-27 11:11 GisClub 阅读(171) 评论(0) 推荐(0)
摘要: 人生不如意之事十之八九,合并分支往往也不是一帆风顺的。准备新的feature1分支,继续我们的新分支开发:$ git checkout -b feature1Switched to a new branch 'feature1'修改readme.txt最后一行,改为:Creating a new b... 阅读全文
posted @ 2015-01-27 11:10 GisClub 阅读(320) 评论(0) 推荐(0)
摘要: 在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。一开始的时候,ma... 阅读全文
posted @ 2015-01-27 11:09 GisClub 阅读(294) 评论(0) 推荐(0)
摘要: 分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN。如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN!分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两... 阅读全文
posted @ 2015-01-27 11:08 GisClub 阅读(196) 评论(0) 推荐(0)
摘要: 上次我们讲了先有本地库,后有远程库的时候,如何关联远程库。现在,假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆。首先,登陆GitHub,创建一个新的仓库,名字叫gitskills:我们勾选Initialize this repository with a README,这样Git... 阅读全文
posted @ 2015-01-27 11:07 GisClub 阅读(354) 评论(0) 推荐(0)
摘要: 现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举多得。首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个... 阅读全文
posted @ 2015-01-27 11:06 GisClub 阅读(401) 评论(0) 推荐(0)
摘要: 到目前为止,我们已经掌握了如何在Git仓库里对一个文件进行时光穿梭,你再也不用担心文件备份或者丢失的问题了。可是有用过集中式版本控制系统SVN的童鞋会站出来说,这些功能在SVN里早就有了,没看出Git有什么特别的地方。没错,如果只是在一个仓库里管理文件历史,Git和SVN真没啥区别。为了保证你现在所... 阅读全文
posted @ 2015-01-27 11:05 GisClub 阅读(300) 评论(0) 推荐(0)
摘要: 在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交:$ git add test.txt$ git commit -m "add test.txt"[master 94cdc44] add test.txt 1 file changed, 1 inser... 阅读全文
posted @ 2015-01-27 11:04 GisClub 阅读(348) 评论(0) 推荐(0)
摘要: 自然,你是不会犯错的。不过现在是凌晨两点,你正在赶一份工作报告,你在readme.txt中添加了一行:$ cat readme.txtGit is a distributed version control system.Git is free software distributed under ... 阅读全文
posted @ 2015-01-27 11:03 GisClub 阅读(400) 评论(0) 推荐(0)
摘要: 现在,假定你已经完全掌握了暂存区的概念。下面,我们要讨论的就是,为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件。你会问,什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一... 阅读全文
posted @ 2015-01-27 11:02 GisClub 阅读(198) 评论(0) 推荐(0)
摘要: Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念。先来看名词解释。工作区(Working Directory):就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区:版本库(Repository):工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。... 阅读全文
posted @ 2015-01-27 11:01 GisClub 阅读(680) 评论(0) 推荐(0)
摘要: 现在,你已经学会了修改文件,然后把修改提交到Git版本库,现在,再练习一次,修改readme.txt文件如下:Git is a distributed version control system.Git is free software distributed under the GPL.然后尝试... 阅读全文
posted @ 2015-01-27 11:00 GisClub 阅读(311) 评论(0) 推荐(0)
摘要: 我们已经成功地添加并提交了一个readme.txt文件,现在,是时候继续工作了,于是,我们继续修改readme.txt文件,改成如下内容:Git is a distributed version control system.Git is free software.现在,运行git status命... 阅读全文
posted @ 2015-01-27 10:58 GisClub 阅读(303) 评论(0) 推荐(0)
摘要: 什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。所以,创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录... 阅读全文
posted @ 2015-01-27 10:57 GisClub 阅读(233) 评论(0) 推荐(0)
摘要: 最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上跑。不过,慢慢地有人把它移植到了Windows上。现在,Git可以在Linux、Unix、Mac和Windows这几大平台上正常运行了。要使用Git,第一步当然是安装Git了。根据你当前使用的平台来阅读下面的文... 阅读全文
posted @ 2015-01-27 10:56 GisClub 阅读(235) 评论(0) 推荐(0)
摘要: 创建版本库时光机穿梭版本回退工作区和暂存区管理修改撤销修改删除文件远程仓库添加远程库从远程库克隆分支管理创建与合并分支解决冲突分支管理策略Bug分支Feature分支多人协作标签管理创建标签操作标签使用GitHub自定义Git忽略特殊文件配置别名搭建Git服务器期末总结关于作者集中式vs分布式275... 阅读全文
posted @ 2015-01-27 10:55 GisClub 阅读(394) 评论(0) 推荐(0)
摘要: 很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢?事实是,在2002年以前... 阅读全文
posted @ 2015-01-27 10:54 GisClub 阅读(221) 评论(0) 推荐(0)
摘要: Git是什么?Git是目前世界上最先进的分布式版本控制系统(没有之一)。Git有什么特点?简单来说就是:高端大气上档次!那什么是版本控制系统?如果你用Microsoft Word写过长篇大论,那你一定有这样的经历:想删除一个段落,又怕将来想恢复找不回来怎么办?有办法,先把当前文件“另存为……”一个新... 阅读全文
posted @ 2015-01-27 10:53 GisClub 阅读(196) 评论(0) 推荐(0)