文章分类 -  Git 学习

Git 学习
TortoiseGit 使用教程
摘要:git的使用越来越广泛使用命令比较麻烦,下面讲解一下tortoisegit的使用先下载安装git(msysgit)和tortoisegit,安装后提示重启电脑,不解释1.找一个文件夹做仓库这里用repository\shared.gif,空白处点击右键出现以下菜单,创建共享仓库在弹出的对话框勾选make it bare第一次的话会提示是个空仓库2.在工作目录下,先确认身份TortoiseGit-->Setting,在打开的对话框里,左边选git,右边就会出现写用户名和邮箱的地方在用户工作目录下点击右键,选择git clone,弹出对话框点击ok后,发现此文件夹下多了一个隐藏的文件夹.gi 阅读全文

posted @ 2013-12-25 17:31 莫回头 阅读(203) 评论(0) 推荐(0)

Git 教程-总结
摘要:终于到了期末总结的时刻了!经过几天的学习,相信你对Git已经初步掌握。一开始,可能觉得Git上手比较困难,尤其是已经熟悉SVN的童鞋,没关系,多操练几次,就会越用越顺手。Git虽然极其强大,命令繁多,但常用的就那么十来个,掌握好这十几个常用命令,你已经可以得心应手地使用Git了。友情附赠国外网友制作的Git Cheat Sheet,建议打印出来备用:Git Cheat Sheet现在告诉你Git的官方网站:http://git-scm.com,英文自我感觉不错的童鞋,可以经常去官网看看。什么,打不开网站?相信我,我给出的绝对是官网地址,而且,Git官网决没有那么容易宕机,可能是你的人品问题,赶 阅读全文

posted @ 2013-12-23 17:24 莫回头 阅读(118) 评论(0) 推荐(0)

搭建Git服务器
摘要:在远程仓库一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改。GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。搭建Git服务器需要准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,这样,通过几条简单的apt命令就可以完成安装。假设你已经有sudo权限的用户账号,下面,正式开始安装。第一步,安装git:$ sudo apt-get install git第二步,创建一个git用户,用来运行git服务 阅读全文

posted @ 2013-12-23 16:53 莫回头 阅读(187) 评论(0) 推荐(0)

配置别名
摘要:有没有经常敲错命令?比如git status?status这个单词真心不好记。如果敲git st就表示git status那就简单多了,当然这种偷懒的办法我们是极力赞成的。我们只需要敲一行命令,告诉Git,以后st就表示status:$ git config --global alias.st status好了,现在敲git st看看效果。当然还有别的命令可以简写,很多人都用co表示checkout,ci表示commit,br表示branch:$ git config --global alias.co checkout$ git config --global alias.ci commit 阅读全文

posted @ 2013-12-23 16:49 莫回头 阅读(129) 评论(0) 推荐(0)

忽略特殊文件
摘要:有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,每次git status都会显示“Untracked files ...”,有强迫症的童鞋心里肯定不爽。好在Git考虑到了大家的感受,这个问题解决起来也很简单,在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了。所有配置文件可以直接在线浏览:https://github.com/github/gitignore忽略文 阅读全文

posted @ 2013-12-23 16:46 莫回头 阅读(126) 评论(0) 推荐(0)

自定义Git
摘要:在安装Git一节中,我们已经配置了user.name和user.email,实际上,Git还有很多可配置项。比如,让Git显示颜色,会让命令输出看起来更醒目:$ git config --global color.ui true这样,Git会适当地显示不同的颜色,比如git status命令:文件名就会标上颜色。我们在后面还会介绍如何更好地配置Git,以便让你的工作更高效。 阅读全文

posted @ 2013-12-23 16:45 莫回头 阅读(98) 评论(0) 推荐(0)

使用GitHub
摘要:我们一直用GitHub作为免费的远程仓库,如果是个人的开源项目,放到GitHub上是完全没有问题的。其实GitHub还是一个开源协作社区,通过GitHub,既可以让别人参与你的开源项目,也可以参与别人的开源项目。在GitHub出现以前,开源项目开源容易,但让广大人民群众参与进来比较困难,因为要参与,就要提交代码,而给每个想提交代码的群众都开一个账号那是不现实的,因此,群众也仅限于报个bug,即使能改掉bug,也只能把diff文件用邮件发过去,很不方便。但是在GitHub上,利用Git极其强大的克隆和分支功能,人们群众真正可以第一次自由参与各种开源项目了。如何参与一个开源项目呢?比如人气极高的b 阅读全文

posted @ 2013-12-23 16:44 莫回头 阅读(156) 评论(0) 推荐(0)

操作标签
摘要:如果标签打错了,也可以删除:$ git tag -d v0.1Deleted tag 'v0.1' (was e078af9)因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。如果要推送某个标签到远程,使用命令git push origin tagname:$ git push origin v1.0Total 0 (delta 0), reused 0 (delta 0)To git@github.com:michaelliao/learngit.git * [new tag] v1.0 -> v1.0或者,一次性推送全部尚未推送到远 阅读全文

posted @ 2013-12-23 16:40 莫回头 阅读(128) 评论(0) 推荐(0)

创建标签
摘要:在Git中打标签非常简单,首先,切换到需要打标签的分支上:$ git branch* dev master$ git checkout masterSwitched to branch 'master'然后,敲命令git tag name就可以打一个新标签:$ git tag v1.0可以用命令git tag查看所有标签:$ git tagv1.0默认标签是打在最新提交的commit上的。有时候,如果忘了打标签,比如,现在已经是周五了,但应该在周一打的标签没有打,怎么办?方法是找到历史提交的commit id,然后打上就可以了:$ git log --pretty=onelin 阅读全文

posted @ 2013-12-23 16:31 莫回头 阅读(150) 评论(0) 推荐(0)

标签管理
摘要:发布一个版本时,我们通常先在版本库中打一个标签,这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支很像对不对?但是分支可以移动,标签不能移动),所以,创建和删除标签都是瞬间完成的。 阅读全文

posted @ 2013-12-23 16:30 莫回头 阅读(98) 评论(0) 推荐(0)

Feature分支
摘要:软件开发中,总有无穷无尽的新的功能要不断添加进来。添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支。现在,你终于接到了一个新任务:开发代号为Vulcan的新功能,该功能计划用于下一代星际飞船。于是准备开发:$ git checkout -b feature-vulcanSwitched to a new branch 'feature-vulcan'5分钟后,开发完毕:$ git status# On branch feature-vulcan# 阅读全文

posted @ 2013-12-23 11:38 莫回头 阅读(215) 评论(0) 推荐(0)

Bug分支
摘要:软件开发中,bug就像家常便饭一样。有了bug就需要修复,在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。当你接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支issue -101来修复它,但是,等等,当前正在dev上进行的工作还没有提交:$ git status# On branch dev# Changes to be committed:# (use "git reset HEAD ..." to unstage)## new file: hello.py## Changes 阅读全文

posted @ 2013-12-23 11:20 莫回头 阅读(142) 评论(0) 推荐(0)

分支管理策略
摘要:通常,合并分支时,如果可能,Git会用“Fast forward”模式,但这种模式下,删除分支后,会丢掉分支信息。如果要强制禁用“Fast forward”模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。下面我们实战一下--no-ff方式的merge:首先,仍然创建并切换dev分支:$ git checkout -b devSwitched to a new branch 'dev'修改readme.txt文件,并提交一个新的commit:$ git add readme.txt $ git commit -m "add 阅读全文

posted @ 2013-12-23 10:46 莫回头 阅读(545) 评论(0) 推荐(0)

解决冲突
摘要:人生不如意之事十之八九,合并分支往往也不是一帆风顺的。准备新的feature1分支,继续我们的新分支开发:$ git checkout -b feature1Switched to a new branch 'feature1'修改readme.txt最后一行,改为:Creating a new branch is quick AND simple.在feature1分支上提交:$ git add readme.txt $ git commit -m "AND simple"[feature1 75a857c] AND simple 1 file chang 阅读全文

posted @ 2013-12-23 10:31 莫回头 阅读(148) 评论(0) 推荐(0)

创建与合并分支
摘要:在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点:每次提交,master分支都会向前移动一步,这样,随着你不断提交,master分支的线也越来越长:当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向mas 阅读全文

posted @ 2013-12-21 13:40 莫回头 阅读(147) 评论(0) 推荐(0)

分支管理
摘要:分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN。如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN!分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交 阅读全文

posted @ 2013-12-21 13:37 莫回头 阅读(100) 评论(0) 推荐(0)

添加远程
摘要:现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举多得。首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库:在Repository name填入learngit,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:目前,在GitHub上的这个learngit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库 阅读全文

posted @ 2013-12-21 09:45 莫回头 阅读(127) 评论(0) 推荐(0)

linux ssh密匙登陆
摘要:安装OpenSSh,一般linux 系统都自带有[root@sqzr ~]# ssh-keygen -b 1024 -t rsaGenerating public/private rsa key pair. #提示正在生成rsa密钥对Enter file in which to save the key (/root/.ssh/id_dsa): #询问公钥和私钥存放的位置,回车用默认位置即可Enter passphrase (empty for no passphrase): #询问输入私钥密语,输入密语Enter same passphrase again: #再次提示输入密语确认Your 阅读全文

posted @ 2013-12-21 09:35 莫回头 阅读(211) 评论(0) 推荐(0)

Github for Windows使用图文教程
摘要:Git已经变得非常流行,连Codeplex现在也已经主推Git。Github上更是充斥着各种高质量的开源项目,比如rubyonrails,cocos2d等等。对于习惯Windows图形界面的程序员来讲,Github的使用是需要点时间和耐心的,然而最近Github发布了GithubforWindows则大大降低了学习成本和使用难度,他甚至比SVN都简单,好吧,你不信,我们来一步一步过一面:1.在http://www.cr173.com/soft/42550.html下载GithubforWindows,然后安装就不说了2.登陆,安装好后打开GitHub,用你的GitHub账号登陆。需要注意的事, 阅读全文

posted @ 2013-12-20 17:19 莫回头 阅读(101) 评论(0) 推荐(0)

远程仓库
摘要:到目前为止,我们已经掌握了如何在Git仓库里对一个文件进行时光穿梭,你再也不用担心文件备份或者丢失的问题了。可是有用过集中式版本控制系统SVN的童鞋会站出来说,这些功能在SVN里早就有了,没看出Git有什么特别的地方。没错,如果只是在一个仓库里管理文件历史,Git和SVN真没啥区别。为了保证你现在所学的Git物超所值,将来绝对不会后悔,同时为了打击已经不幸学了SVN的童鞋,本章开始介绍Git的杀手级功能之一(注意是之一,也就是后面还有之二,之三……):远程仓库。Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。怎么分布呢?最早,肯定只有一台机器有一个原始版本库,此后,别的机 阅读全文

posted @ 2013-12-20 16:58 莫回头 阅读(138) 评论(0) 推荐(0)