2019年8月17日
摘要: 在远程仓库一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改。 GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。 搭建 阅读全文
posted @ 2019-08-17 16:54 清明-心若淡定 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,每次git status都会显示Untracked files ...,有强迫症的童鞋心里肯定不爽。 好在Git考虑到了大家的感受,这个问题解决起来也很简单,在Git工作区的根目录下创建一个特殊 阅读全文
posted @ 2019-08-17 16:53 清明-心若淡定 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 有没有经常敲错命令?比如git status?status这个单词真心不好记。 如果敲git st就表示git status那就简单多了,当然这种偷懒的办法我们是极力赞成的。 我们只需要敲一行命令,告诉Git,以后st就表示status: 好了,现在敲git st看看效果。 当然还有别的命令可以简写 阅读全文
posted @ 2019-08-17 16:53 清明-心若淡定 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 使用GitHub时,国内的用户经常遇到的问题是访问速度太慢,有时候还会出现无法连接的情况(原因你懂的)。 如果我们希望体验Git飞一般的速度,可以使用国内的Git托管服务——码云(gitee.com)。 和GitHub相比,码云也提供免费的Git仓库。此外,还集成了代码质量检测、项目演示等功能。对于 阅读全文
posted @ 2019-08-17 16:45 清明-心若淡定 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 我们一直用GitHub作为免费的远程仓库,如果是个人的开源项目,放到GitHub上是完全没有问题的。其实GitHub还是一个开源协作社区,通过GitHub,既可以让别人参与你的开源项目,也可以参与别人的开源项目。 在GitHub出现以前,开源项目开源容易,但让广大人民群众参与进来比较困难,因为要参与 阅读全文
posted @ 2019-08-17 16:43 清明-心若淡定 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 如果标签打错了,也可以删除: 因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。 如果要推送某个标签到远程,使用命令git push origin <tagname>: 或者,一次性推送全部尚未推送到远程的本地标签: 如果标签已经推送到远程,要删除远程标签就麻烦一 阅读全文
posted @ 2019-08-17 16:42 清明-心若淡定 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 在Git中打标签非常简单,首先,切换到需要打标签的分支上: 然后,敲命令git tag <name>就可以打一个新标签: 可以用命令git tag查看所有标签: 默认标签是打在最新提交的commit上的。有时候,如果忘了打标签,比如,现在已经是周五了,但应该在周一打的标签没有打,怎么办? 方法是找到 阅读全文
posted @ 2019-08-17 16:40 清明-心若淡定 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。 Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支很像对不对?但是分 阅读全文
posted @ 2019-08-17 16:39 清明-心若淡定 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 在上一节我们看到了,多人在同一个分支上协作时,很容易出现冲突。即使没有冲突,后push的童鞋不得不先pull,在本地合并,然后才能push成功。 每次合并再push后,分支变成了这样: 总之看上去很乱,有强迫症的童鞋会问:为什么Git的提交历史不能是一条干净的直线? 其实是可以做到的! Git有一种 阅读全文
posted @ 2019-08-17 16:37 清明-心若淡定 阅读(462) 评论(0) 推荐(0) 编辑
摘要: 当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin。 要查看远程库的信息,用git remote: 或者,用git remote -v显示更详细的信息: 上面显示了可以抓取和推送的origin的地址。如果没有推送权 阅读全文
posted @ 2019-08-17 16:32 清明-心若淡定 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 软件开发中,总有无穷无尽的新的功能要不断添加进来。 添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支。 现在,你终于接到了一个新任务:开发代号为Vulcan的新功能, 阅读全文
posted @ 2019-08-17 16:28 清明-心若淡定 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 软件开发中,bug就像家常便饭一样。有了bug就需要修复,在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。 当你接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支issue-101来修复它,但是,等等,当前 阅读全文
posted @ 2019-08-17 16:03 清明-心若淡定 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。 下面我们实战一下--no-ff方式的git merge 阅读全文
posted @ 2019-08-17 15:57 清明-心若淡定 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 人生不如意之事十之八九,合并分支往往也不是一帆风顺的。 准备新的feature1分支,继续我们的新分支开发: 修改readme.txt最后一行,改为: 在feature1分支上提交: 切换到master分支: Git还会自动提示我们当前master分支比远程的master分支要超前1个提交。 在ma 阅读全文
posted @ 2019-08-17 15:49 清明-心若淡定 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。 一开始的时候,m 阅读全文
posted @ 2019-08-17 15:43 清明-心若淡定 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN。 如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN! 分支在实际中有什么用呢?假设你准备开发一个新功能,但是需 阅读全文
posted @ 2019-08-17 15:40 清明-心若淡定 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 上次我们讲了先有本地库,后有远程库的时候,如何关联远程库。 现在,假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆。 首先,登陆GitHub,创建一个新的仓库,名字叫gitskills: 我们勾选Initialize this repository with a README,这样 阅读全文
posted @ 2019-08-17 15:39 清明-心若淡定 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举多得。 首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一 阅读全文
posted @ 2019-08-17 15:31 清明-心若淡定 阅读(195) 评论(0) 推荐(0) 编辑
摘要: Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。怎么分布呢?最早,肯定只有一台机器有一个原始版本库,此后,别的机器可以“克隆”这个原始版本库,而且每台机器的版本库其实都是一样的,并没有主次之分。 你肯定会想,至少需要两台机器才能玩远程库不是?但是我只有一台电脑,怎么玩? 其实一 阅读全文
posted @ 2019-08-17 15:09 清明-心若淡定 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交: 一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了: 这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,git status命令会立刻告诉你哪些文件被删除了: 现 阅读全文
posted @ 2019-08-17 15:00 清明-心若淡定 阅读(165) 评论(0) 推荐(0) 编辑