摘要: 当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin。 要查看远程库的信息,用git remote: $ git remote origin 或者,用git remote -v显示更详细的信息: $ git remo 阅读全文
posted @ 2017-02-23 17:24 superlife 阅读(778) 评论(0) 推荐(0) 编辑
摘要: 软件开发中,总有无穷无尽的新的功能要不断添加进来。 添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支。 现在,你终于接到了一个新任务:开发代号为Vulcan的新功能, 阅读全文
posted @ 2017-02-23 17:15 superlife 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 软件开发中,bug就像家常便饭一样。有了bug就需要修复,在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。 当你接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支issue-101来修复它,但是,等等,当前 阅读全文
posted @ 2017-02-23 17:06 superlife 阅读(1101) 评论(0) 推荐(0) 编辑
摘要: 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。 下面我们实战一下--no-ff方式的git merge 阅读全文
posted @ 2017-02-23 16:49 superlife 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 人生不如意之事十之八九,合并分支往往也不是一帆风顺的。 准备新的feature1分支,继续我们的新分支开发: 修改readme.txt最后一行,改为: 在feature1分支上提交: 切换到master分支: Git还会自动提示我们当前master分支比远程的master分支要超前1个提交。 在ma 阅读全文
posted @ 2017-02-23 16:33 superlife 阅读(558) 评论(0) 推荐(2) 编辑
摘要: 在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。 一开始的时候,m 阅读全文
posted @ 2017-02-23 16:06 superlife 阅读(14790) 评论(0) 推荐(1) 编辑
摘要: 上次我们讲了先有本地库,后有远程库的时候,如何关联远程库。 现在,假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆。 首先,登陆GitHub,创建一个新的仓库,名字叫gitskills: 我们勾选Initialize this repository with a README,这样 阅读全文
posted @ 2017-02-23 15:47 superlife 阅读(722) 评论(0) 推荐(0) 编辑
摘要: 现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举多得。 首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一 阅读全文
posted @ 2017-02-23 15:33 superlife 阅读(678) 评论(0) 推荐(0) 编辑
摘要: 到目前为止,我们已经掌握了如何在Git仓库里对一个文件进行时光穿梭,你再也不用担心文件备份或者丢失的问题了。 可是有用过集中式版本控制系统SVN的童鞋会站出来说,这些功能在SVN里早就有了,没看出Git有什么特别的地方。 没错,如果只是在一个仓库里管理文件历史,Git和SVN真没啥区别。为了保证你现 阅读全文
posted @ 2017-02-23 15:18 superlife 阅读(232) 评论(0) 推荐(0) 编辑