??xml version="1.0" encoding="utf-8" standalone="yes"?>精品久久777,国产韩国精品一区二区三区久久,欧美粉嫩小泬久久久久久久http://m.shnenglu.com/deercoder/category/18145.html<P><FONT style="FONT-SIZE: 20px" color=#ff0000>U篏Q坚持!</FONT></P> <P><FONT style="FONT-SIZE: 20px" color=#ff0000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ---------我是一只IT小?lt;/FONT></P>zh-cnSat, 14 Apr 2012 12:33:08 GMTSat, 14 Apr 2012 12:33:08 GMT60使用Mercurial同步版本库出?/title><link>http://m.shnenglu.com/deercoder/archive/2012/04/07/170387.html</link><dc:creator>刘畅</dc:creator><author>刘畅</author><pubDate>Sat, 07 Apr 2012 13:29:00 GMT</pubDate><guid>http://m.shnenglu.com/deercoder/archive/2012/04/07/170387.html</guid><wfw:comment>http://m.shnenglu.com/deercoder/comments/170387.html</wfw:comment><comments>http://m.shnenglu.com/deercoder/archive/2012/04/07/170387.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/deercoder/comments/commentRss/170387.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/deercoder/services/trackbacks/170387.html</trackback:ping><description><![CDATA[今天在用Mercurial同步版本库的时候,出现错误Q?br /><br /><div>warning: code.google.com certificate with fingerprint ed:2e:18:55:ee:6b:cc:4c:cb:8b:11:a8:74:5c:97:9e:1d:42:b5:be not verified (check hostfingerprints or web.cacerts config setting)</div><div>destination directory: ipv6-hosts</div><div>abort: Operation not permitted: /media/Code/ipv6-hosts/ipv6-hosts/.hg/requires<br />半天L找不到原因,记得在Git下面checkout Google Code目的时候ƈ没有出现cM的提C,׃以前没有接触qMercurialQ因此花了点旉Google一下,最l发现大致的q程也不q如此,initQ?checkoutQpull{等?br /><br />但是回到正题Q不论是initq是clone都会出现上面的错误,提示权限问题Q抱着试试的态度Q用sudo命名Q记q成功的init和cloneQ看来不论是哪里Q都要注意权限?br /><br />不过额外再说一点,同样的,我在该目录下面新Z个文件夹Q利用git init来初始化的时候,却ƈ没有到相同的问题,只能说明QGit和Mercurial的机制可能不同,后者在操作的过E中需要加入提升权限的口o。记录一下,׃使用Mercurial的机会也不是很多Q这里只是拷贝一下版本库Qƈ无太多深入研IӞ所以先记录在这里吧?/div> <div id="qu08ccm" class="vimiumHUD" style="right: 150px; opacity: 0; display: none; "></div><img src ="http://m.shnenglu.com/deercoder/aggbug/170387.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/deercoder/" target="_blank">刘畅</a> 2012-04-07 21:29 <a href="http://m.shnenglu.com/deercoder/archive/2012/04/07/170387.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>GitHub使用?/title><link>http://m.shnenglu.com/deercoder/archive/2011/11/13/160050.html</link><dc:creator>刘畅</dc:creator><author>刘畅</author><pubDate>Sun, 13 Nov 2011 15:49:00 GMT</pubDate><guid>http://m.shnenglu.com/deercoder/archive/2011/11/13/160050.html</guid><wfw:comment>http://m.shnenglu.com/deercoder/comments/160050.html</wfw:comment><comments>http://m.shnenglu.com/deercoder/archive/2011/11/13/160050.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.shnenglu.com/deercoder/comments/commentRss/160050.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/deercoder/services/trackbacks/160050.html</trackback:ping><description><![CDATA[<div><div></div></div><div><div>1. 关于GitHub的常见用方法,请参考官|上面的说明。本文档只是针对于常用的,而且Ҏ犯错的用法进行说明。仅仅是个h观点?/div><div></div><div>2. 如何使用GitHubQ?/div><div>(1) 常用的是首先在GitHub上创Z个版本库Q然后接下来的工作是在本机创Z个版本库Q注意不一定要和原来那个版本的文g名相同。比如原来创建的版本为HelloWorldQ那么本机完全可以用一个文件名为HelloRyanq样的文件夹。只是需要在后箋操作中配|相应的信息卛_?/div><div>(2) 本机创徏文g夹后Q需要进行Git的配|。首先git init来初始化一个版本库Q然后需要徏立和q程版本库的链接。这里用git remote add命o来添加?/div><div>git remote add origin url</div><div>其中origin是你指定的url的别名,你完全可以取其他的名U。而url则是版本库信息对应的路径Q这里在GitHub上面你创建的版本库上面,有一个SSH/HTTP/Git Read-Onlyq些选项Q你需要的做的是选择一个urlQ填写即可。比?/div><div>git remote add helloworld git@github.com:username/repname.git</div><div>(3) 建立h机和q程的联pM后,q可以对Gitq行单配|,比如邮箱Q用户名Q比较工具啥的,׃本文不是初教程Q所以此部分内容略。详见官Ҏ档?/div><div>(4) 本机q行工程开发,比如新徏文gQ然后提交。等{?/div><div>(5) 保证和远E同步,因此需要将本机的版本库push到远E上去,为此使用Q?/div><div>git push origin branch</div><div>其中Qorigin是刚刚取的别名Q比如是helloworldQ而后面的是要推送到的分支名Q比如master。具体就看你本机和远E的分支Q对应的别名了?/div><div>(6) 完成了上qC改后Q可能会在另外一个场合拉取代码,此时q是相同的步骤,创徏一个文件夹Qgit init来初始化版本库,然后同样git remote add xxx xxx?/div><div>接下来的d是执行pull命oQgit pull xxx branch(其中xxx是前面的origin,helloworldq些别名)?/div><div></div><div>单的用法׃l到q里?/div><div>下面说说一些用到的体会Qȝ?/div><div></div><div>(1) 首先是关于git remote add xxx xxxq个用法。这个做法是取别名,避免了每ơ都要输入完整的路径名,当然Q你也可以这么做Q当然没问题?/div><div>比如Qgit pull url masterQ就是把q程的urlq个拉取到本机的master分支上?/div><div>可是每次都这么做多麻烦,为此使用别名Q以后就直接通过别名来pushQpull?/div><div>实际上,昨晚q个工作后,会在.git目录下面的config文g中写入一个项Q用来指C别名的信?如下所C:</div><div>[remote "origin"]</div><div><span style="white-space:pre"> </span>url = git@github.com:xxx/rep.git</div><div><span style="white-space:pre"> </span>fetch = +refs/heads/*:refs/remotes/origin/*</div><div></div><div>上面是别名originq个别名的信息。记录了目标q程版本库的地址?/div><div></div><div>(2) SSH方式q是HTTPS方式?/div><div>在版本库的SSH方式和HTTPS方式是不同的Q具体来说就是url信息的不同,但是Q实际的认证机制也是不同的。当建立了本机密钥之后,使用ssh方式实际上是不需要再ơ认证的Q而https则每ơ需要输入密码?/div><div>比如Q上面的url = git@github.com:xxx/rep.git使用的是ssh方式Q那么我q入一个版本库中,push到远E的时候,是不需要输入用户名和密码的Q这个只在你初始时候用到。而如果我的url是以https方式来做的话Q如url = https://xxxxQ这h在进行更斎ͼpush或者pull的时候,都会提示你输入GitHub的帐号和密码的。实际上QGitHub是鼓׃用ssh方式的,在官Ҏ档也有说明,不过对于无法使用ssh服务的地Ҏ_https又多了一U方式,l用户也带来了方ѝ?/div><div></div><div>(3) 常用的命令和Git的用似乎ƈ不需要有太多的说明,但是要想掌握q个工具q是需要很大的试和努力。这里推荐下囑Ş化用工具TGitQWindowsQ以及gitg(Linux)版本。通过囑Ş化工兯够帮助我们熟悉提交图Q掌握基本的操作Q有时候图形化界面能够极大的方便我们操作,比如右键可以打TagQ查看分支,所有分支,Diff{等?/div><div>在Windows下面Q先要安装GitE序Q然后安装TGitQ指定Git路径Q此时可以利用Cygwin的命令行界面来操作GitQ同时可以在右键菜单中用TGit来查看提交图?/div><div>在Linux下面Q就直接使用命o行来工作Q同时利用gitg{图形化工具来观察提交图{?/div><div></div><div>(4)协同工作。在GitHub上面有很多开源项目可以参与到开发学习,可以搜烦相关目Qfork该项目,然后在自q版本库中׃出现Q此旉过pull可以更新到本机,然后再进行开发,当你开发之后push上去Q再通过向开发者发送请求让其了解到你进行的修复Q然后他Ҏ自己的判断是否采UI更新版本库来军_是否让你的这ơ提交ƈ入到版本库中?/div><div></div><div>(4)更多关于Github的用请参见官网Qhttps://github.com,里面讲述了如何从建立版本库到创徏分支Q管理版本库的知识?/div></div><div></div><div></div> <div id="88ycggo" class="vimiumHUD" style="right: 150px; opacity: 0; display: none; "></div><img src ="http://m.shnenglu.com/deercoder/aggbug/160050.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/deercoder/" target="_blank">刘畅</a> 2011-11-13 23:49 <a href="http://m.shnenglu.com/deercoder/archive/2011/11/13/160050.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Git Stash用法http://m.shnenglu.com/deercoder/archive/2011/11/13/160007.html刘畅刘畅Sat, 12 Nov 2011 16:36:00 GMThttp://m.shnenglu.com/deercoder/archive/2011/11/13/160007.htmlhttp://m.shnenglu.com/deercoder/comments/160007.htmlhttp://m.shnenglu.com/deercoder/archive/2011/11/13/160007.html#Feedback11http://m.shnenglu.com/deercoder/comments/commentRss/160007.htmlhttp://m.shnenglu.com/deercoder/services/trackbacks/160007.html首先Q简单介l下Git Stash命o的用法,详细的用法在man文档中有相关介绍Q下面我来说明常见的使用?br />git stash: 备䆾当前的工作区的内容,从最q的一ơ提交中d相关内容Q让工作Z证和上次提交的内容一致。同Ӟ当前的工作区内容保存到Git栈中?br />git stash pop: 从Git栈中d最q一ơ保存的内容Q恢复工作区的相兛_宏V由于可能存在多个Stash的内容,所以用栈来理Qpop会从最q的一个stash中读取内容ƈ恢复?br />git stash list: 昄Git栈内的所有备份,可以利用q个列表来决定从那个地方恢复?br />git stash clear: 清空Git栈。此时用gitg{图形化工具会发玎ͼ原来stash的哪些节炚w消失了?br />关于Git Stash的详l解释,适用场合Q这里做一个说明:
使用git的时候,我们往往使用branch解决d切换问题Q例如,我们往往会徏一个自q分支M改和调试代码, 如果别h或者自己发现原有的分支上有个不得不修改的bugQ我们往往会把完成一半的代码 commit提交到本C库,然后切换分支M改bugQ改好之后再切换回来。这L话往往log上会有大量不必要的记录。其实如果我们不x交完成一半或者不完善的代码,但是却不得不M改一个紧急BugQ那么?/span>'git stash'可以将你当前未提交到本圎ͼ和服务器Q的代码推入到Git的栈中,q时候你的工作区间和上一ơ提交的内容是完全一LQ所以你可以攑ֿ的修 BugQ等C完BugQ提交到服务器上后,再?/span>'git stash apply'以前一半的工作应用回来。也许有的h会说Q那我可不可以多ơ将未提交的代码压入到栈中?{案是可以的。当你多ơ?/span>'git stash'命o后,你的栈里充满了未提交的代码Q这时候你会对哪个版本应用回来有些困惑,'git stash list'命o可以当前的Git栈信息打印出来,你只需要将扑ֈ对应的版本号Q例如?/span>'git stash apply stash@{1}'可以将你指定版本号为stash@{1}的工作取出来Q当你将所有的栈都应用回来的时候,可以使用'git stash clear'来将栈清I?br />在这里顺便提下git format-patch -n , n是具体某个数字, 例如 'git format-patch -1' q时便会Ҏlog生成一个对应的补丁Q如?nbsp;'git format-patch -2' 那么便会生成2个补丁,当然前提是你的log上有臛_有两个记录?/span>

看过上面的信息,可以知道用场合了Q当前工作区内容已被修改Q但是ƈ未完成。这时Boss来了Q说前面的分支上面有一个BugQ需要立即修复。可是我又不x交目前的修改Q因ZҎ有完成。但是,不提交的话,又没有办法checkout到前面的分支。此时用Git Stashq当于备䆾工作Z。然后在Checkoutq去修改Q就能够辑ֈ保存当前工作区,q及时恢复的作用?br />
下面Q将我用过E中遇到的一个问题和大家分nQ?br />
首先Q在Git Stash之后Q提交图如下所C:

从图中可以看刎ͼdevelop和newdevelop是在同一个分支上Q因为分支newdevelop是在develop分支的基上开发的。想加入一个新的特性,所以就开了newdevelop分支Q然后就在上面加东西Q加Ҏ,该代码。这个时候工作的内容已经变化了,但是develop和newdevelop都是指向同一个提交的Q因为newdevelop上面q木有提交?br />q个时候,Boss来了Q说develop上面有个BugQ赶快改一下,手头的工作先放放Q稳定版本不能有~陷。没办法Q当前正在newdevelop上搞的high呢,Git Stash一下。所以会看到上面有两个节点,U色以及上面一个。就是stash之后的结果,注意是在newdevelop上面q行的stash?br />
正如前面所_stash会暂存当前的工作区内容,然后工作区内容保持和上ơ提交相同,此时内容都是上面8a32那个提交的内宏V从l端中查看相应的信息内容Q如下:

印证了签名的说法Qnewdevelop是有修改QmodifiedQ然后stash之后Q工作区是最q一ơ提交,此时newdevelop和develop都是相同的,所以再git status查看发现Q都一Pnothing to commit.

然后Stash完成之后Q就要Fix Bug了。ؓ此,回到develop分支上进行修复,然后提交Q完成后的提交图如下所C:
从途中可以看到Qnewdevelopq是在下面,因ؓ指向的是老的那个8a32的commit。新的develop׃修复了BugQ所以生一个新提交?br />

然后在develop上面修复了Bug之后Q在回到newdevelop上面q行一个新的特性的l箋~码Q此时checkout回去的时候,没有马内容可以提交Q因为都存在Stash中了Q没有Q何修攏V如上图?br />
那么Q恢复工作区内容吧。于是git stash popQ注意这里由于只Stash了一ơ所以用popQ具体你存放了多,要恢复哪一个要自己清楚Q否则会出错Q)

恢复之后Q从上图中可以看刎ͼ此时再git status׃发现文g有修改,说明恢复q来了。然后就l箋~码Q提交一个稳定的新特性版本,如下图,产生的新提交?906.
然后再查看提交图Q会发现Qstash pop之后Q对应的存放的stash被清I掉了,提交图中Qnewdevelop上面对应一个新的提交。ƈ且在develop上面。分支的develop那个U色Q即为前面修复Bug的那个提交?br />

ȝhQ?br />操作很简单,但是头脑要清楚。要在哪个分支上修复BugQ要暂存哪个地方的内容,之后修复完了在那个地Ҏ交,然后要到哪个分支上面恢复工作区,都是需要注意的Q否则,很容易造成提交图؜乱。只有弄清楚了工作流E,才不Ҏ出错Q才能保证很高的工作效率?br />最后一句:Git是神器,p看你如何N它了?img src ="http://m.shnenglu.com/deercoder/aggbug/160007.html" width = "1" height = "1" />

刘畅 2011-11-13 00:36 发表评论
]]>
þþþavרˮ| ݺɫþþۺ| þùֻоƷ| ƷþþþþҰ| 91þþžվ | ŷþ޾Ʒ| ƷþþĻ| þۺϸϾþúݺݺ97ɫ | þˬˬƬAV鷳 | ޹պŷþ| þAvԴվ| һձȾþۺ| ŷպ˾Ʒþþѿ | պӰþþñ| þۺϹapp| þþƷһapp| ޺ݺۺϾþѿ | þ99Ʒþþþþˮ | һƷþ| AVþþƷ| ݾþþù| ޳ɫ999þվ| ޺ݺۺϾþþþ| þƵ| 999Ʒþþþþ| þþƷ鶹| ޾þþþþ| þëƬһ| Ƭѹۿþ| þþƷ޾Ʒŷ| þҹӰ| þ޹ŷ޾Ʒһ| þۺ| ˾þô߽AV| ޾Ʒһۺ99þ| ɫۺϾþ| Ʒþˬ| þҹӰ| þó18վ| þþƷһ| þþþƷþþþþ|