2016年5月30日
摘要: 如果标签打错了,也可以删除: 因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。 如果要推送某个标签到远程,使用命令git push origin <tagname>: 或者,一次性推送全部尚未推送到远程的本地标签: 如果标签已经推送到远程,要删除远程标签就麻烦一 阅读全文
posted @ 2016-05-30 11:39 JeremyLee87 阅读(188) 评论(0) 推荐(0) 编辑
  2016年5月28日
摘要: 在Git中打标签非常简单,首先,切换到需要打标签的分支上: 然后,敲命令git tag <name>就可以打一个新标签: 可以用命令git tag查看所有标签: 默认标签是打在最新提交的commit上的。有时候,如果忘了打标签,比如,现在已经是周五了,但应该在周一打的标签没有打,怎么办? 方法是找到 阅读全文
posted @ 2016-05-28 18:40 JeremyLee87 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 发布一个版本时,我们通常先在版本库中打一个标签,这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。 Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支很像对不对?但是分支可以移动 阅读全文
posted @ 2016-05-28 18:25 JeremyLee87 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin。 要查看远程库的信息,用git remote: 或者,用git remote -v显示更详细的信息: 上面显示了可以抓取和推送的origin的地址。如果没有推送权 阅读全文
posted @ 2016-05-28 18:17 JeremyLee87 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 软件开发中,总有无穷无尽的新的功能要不断添加进来。 添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支。 现在,你终于接到了一个新任务:开发代号为Vulcan的新功能, 阅读全文
posted @ 2016-05-28 16:54 JeremyLee87 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 软件开发中,bug就像家常便饭一样。有了bug就需要修复,在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。 当你接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支issue-101来修复它,但是,等等,当前 阅读全文
posted @ 2016-05-28 16:37 JeremyLee87 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。 下面我们实战一下--no-ff方式的git merge 阅读全文
posted @ 2016-05-28 16:19 JeremyLee87 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 人生不如意之事十之八九,合并分支往往也不是一帆风顺的。 准备新的feature1分支,继续我们的新分支开发: 修改readme.txt最后一行,改为: 在feature1分支上提交: 切换到master分支: Git还会自动提示我们当前master分支比远程的master分支要超前1个提交。 在ma 阅读全文
posted @ 2016-05-28 14:52 JeremyLee87 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。 一开始的时候,m 阅读全文
posted @ 2016-05-28 14:40 JeremyLee87 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN。 如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN! 分支在实际中有什么用呢?假设你准备开发一个新功能,但是需 阅读全文
posted @ 2016-05-28 11:41 JeremyLee87 阅读(133) 评论(0) 推荐(0) 编辑