讲的很好呀,受教了,这的确是使用 stash 很好的场景.~~
不过..., 你是用手机回复的吗?这不像你的风格呀。
#14 楼 @happypeter 这是普遍情况,你可以用 git-stash 解决。
首先,在这个 new-feature 分之 上执行 git stash,这时所有未提交的修改都会被 零时 保存起来。这个时候你就可以方便的 git checkout master 切换到主干分钟,然后 branch 新的 分之 并解决 bug。等 bug 解决了以后,你可以回到 new-feature 分之 上,用 git stash apply 将之前保存的变更全部还原出来。进一步关于 git-stash 的信息可以看这里。
我补充一点:好像还有一个 git pop, 取出来后,顺便清空 stash-list.
我是站在作者编写 git 实用的角度,觉得按照这种方式来使用 git 才是正确的。事实上我也可以理解为什么提供 pull --rebase, 如果这个项目很大,例如:linux kernel, 可能在你处理本地 rebase 的时候,又有其他人向 master push 了新的 commit, 而且这个 commit 碰巧就和你要提交的 commit 发生冲突,这个时候,就需要 pull --rebase 了。除非项目很大很大,否则这样的几率还是很低的。
我的理解,是 rebase 应该总是在本地的不同分支间被执行,这样一步一步才条理,直接在 master 上用 pull --rebase, 我觉得这样是曲解了这个功能的本意 (有点滥用). 相比较而言,pull 的时候如果存在冲突,merge 反倒更靠谱一些。
没太明白你的需求。
不过有没有试过使用 load("完整路径") 的方式来加载??
还有就是 require 默认情况下,是不可以加载 全局可写目录下
的文件的。如果你能加载其中之一,而无法加载另一个,那很有可能就是权限问题??
建议很中肯..
世界上任何事情都没有捷径,即使有时候看起来是捷径,但是真正进去之后,往往最后还是要走回头路,如果把这个时间全算上的话,根本不算什么捷径了。
我强烈呼吁年轻的朋友们,扎扎实实的一步一个脚印走下去。你们还年轻,有的是时间,甚至还有很多在校生,干嘛那么心浮气躁呢?
不好意思。歪楼了...
假设你首先 pull master
下来,然后在 master 上建立 开发分支 开始工作,当你确信工作已经完成,打算要合并到 master 的时候,这个时候首先切换到 master, 然后再次 pull master
, 因为这个时候,你的本地 master 并没有执行任何更改,当然是 fast-forward, 然后,下一步在本地 rebase 开发分支 到 最新的 master, 解决冲突后,push 即可。
我上面这个过程,你说是不是 pull 总是 fast-forwrd 呢?
既然 pull 总是 fast-forward, 干嘛还要加个--rebase, 搞的那么复杂...
我刚刚看了下 pull --rebase 的 man 帮助,就是先 fetch, 然后和本地当前分支 rebase, 我感觉用这个参数会造成混乱。
你平常怎么用这个参数?先本地 rebase, pull 的时候再 rebase ? 要不就是你直接在 master 下工作,从来不会创建分支,工作完后,直接 fetch, 然后 rebase.
其实你自己完全可以一直保证 pull 是 fast forward, 只要保证 不要在master下直接工作
,就可以了.
之前就知道 git 鼓励多创建分支
, 并不明白为什么,但是等明白了 rebase 的含义之后,就理解了。
大家没有注意到,这个问题发错版块了吗?
怎么我写的帖子,除了自己,一个回复都没有呢?
太小白??
我也爱折腾,不过起点比较低啊。向偶像看齐~~ 继续努力!
嗯。我不讨厌 linux 下的 diff, 甚至好几种 diff 显式的方式,也都大概明白,不过真到了项目中,直接用 diff 看就是噩梦。推荐:Windows 和 linux 下推荐Beyond Compare 3
. 无出其右。Mac 下据说Araxis Merge
不错。不过我没用过。
我有一个Matz
亲自编写的 Ruby代码格式化工具
, 嘿嘿
有关该 gem source, 要是嫌麻烦,写俩函数就是了。刚学两天编程的菜鸟都会。呵呵。
function gem1 {
gem source --remove http://rubygems.org/ &>/dev/null
gem source --remove http://rubygems.org &>/dev/null
gem source --remove http://ruby.taobao.org/ &>/dev/null
gem source --remove http://ruby.taobao.org &>/dev/null
gem source --add http://rubygems.org/
gem source --list
}
function gem2 {
gem source --remove http://rubygems.org/ &>/dev/null
gem source --remove http://rubygems.org &>/dev/null
gem source --remove http://ruby.taobao.org/ &>/dev/null
gem source --remove http://ruby.taobao.org &>/dev/null
gem source --add http://ruby.taobao.org/
gem source --list
}
p.s. 我的.bashrc 里大把类似于这种初级的宏函数,我基本上就是靠别名在 CLI 下混呢。有很多对于使用 ruby, 使用 gem 还是很有帮助的。有兴趣的朋友可以去我的 github 上看看,自取所需吧。
很好啊~~ 这也算是 Ruby-china 真正给开源社区带来的贡献啊。
我觉得目前 Ruby-china 对于开源社区的贡献还是太少了。我觉得这需要激情,换个角度来说,这是需要信仰的,我很期待,Ruby-china 能够真正在整个世界的 Ruby 社区中,做到中坚力量之一的那一天。
忘了问楼主,难道楼主不用第三方代码比较与合并工具吗?
顺便提下,按照社区流行的说法,我是一个很极端的 CLI 控,几乎所有事情都是能在 CLI 下较好的完成的,都不会借助图形工具。
针对 git diff, 这里有个小脚本,可以涵盖绝大多数应用场景。
function git_diff () {
if [ -e "$*" ]; then
git diff -- "$*"
else
if [ "$*" ]; then
git diff $*
else
git diff -- .
fi
fi
}
然后再设个别名就是了,例如 gitd.
然后键入 gitd aaa
如果 aaa 这个文件 (或目录) 存在,则自动比较当前工作目录与 staged 不同。
如果文件不存在,则会接受多个参数。例如: gitd branch1 branch2 或 gitd tag1 tag2 或 gitd hash1 hash2
如果不加参数,例如:gitd, 则比较当前目录下的所有文件的不同。
嗨~~ 你可能误解我啦,我不是说视频不好。纯粹个人爱好而已。我更倾向于读那种晦涩的但是比较详细文档 (最好可以包含一个工具的所有方面介绍), 然后我会倾向于从作者的角度来思考,并不断的实践,来理解我需要的东西。我自己可能会犯很多错误,也会走很多弯路,但是挺喜欢这个过程的。
有时候觉得我自己就是那种受虐狂,什么方式学起来越慢,什么方式学起来越痛苦,我就喜欢用什么方式,可是没办法,我是真喜欢这样。
坑爹的 markdown, 我怎么感觉越改越难看呢?
有空一定看看。
我是一般不太喜欢通过视频来学习东西 ...