我在我的python程序中使用制表符缩进,但我想与使用空格的人合作(使用git).
有没有办法让git在推/取时自动在空格和制表符之间进行转换(例如,4个空格= 1个制表符)?(类似于CR/LF转换)
git rebase在保留提交时间戳的同时执行是否有意义?
我相信结果是新分支不一定按时间顺序排列日期.这在理论上是否可行?(例如使用管道命令;只是好奇这里)
如果理论上可行,那么在实践中是否可以使用rebase,而不是更改时间戳?
例如,假设我有以下树:
master <jun 2010>
|
:
:
: oldbranch <feb 1984>
: /
oldcommit <jan 1984>
Run Code Online (Sandbox Code Playgroud)
现在,如果我重新oldbranch启动master,则提交日期将从1984年2月更改为2010年6月.是否可以更改该行为以便不更改提交时间戳?最后我会得到:
oldbranch <feb 1984>
/
master <jun 2010>
|
:
Run Code Online (Sandbox Code Playgroud)
那会有意义吗?甚至允许在git中有一个旧提交最近提交作为父项的历史记录?
要在matplotlib图中添加图例,只需运行即可legend().
如何从情节中删除图例?
(我最接近的是运行legend([])以便从数据中清空图例.但是在右上角留下了一个丑陋的白色矩形.)
我使用该--no-site-packages选项创建了virtualenv 并安装了许多库.现在我想恢复该--no-site-packages选项并使用全局包.
我可以不重新创建virtualenv吗?
更确切地说:
我想知道使用该选项创建virtualenv时究竟发生了什么--no-site-packages,而不是使用该选项.
如果我知道会发生什么,那么我可以弄清楚如何撤消它.
当我开始时git rebase -i,我可以发出像git rebase --continue或的命令git rebase --abort.这些命令仅在rebase正在进行时才有效.
我如何知道是否有正在进行的改造?
(我非常感谢关于rebase如何在内部工作的一些细节; git对一个repo做了什么,使它具有"rebase in progress"状态,?)
我设置了一个远程存储库,我可以对它进行新的更改,但我无法从中获取,我总是得到(相当神秘的)错误消息:
fatal: Refusing to fetch into current branch refs/heads/master of non-bare repository
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
这是什么意思?我该怎么做才能获取?
(请注意,此远程仓库仅用作备份仓库,因此它应该是我本地存储库的精确副本.我真的无法理解为什么我可以推送它但不能从中获取...)
我的配置看起来像:
[remote "origin"]
url = ssh://blablablah
fetch = +refs/*:refs/*
mirror = true
Run Code Online (Sandbox Code Playgroud) 在使用IPython在Python中开发一个大型项目(分成几个文件和文件夹)时,我遇到了缓存导入模块的麻烦.
问题是指令import module只读取模块一次,即使该模块已经改变!因此,每次我更改包中的内容时,都必须退出并重新启动IPython.痛苦.
有没有办法正确强制重装一些模块?或者,更好的是,以某种方式阻止Python缓存它们?
我尝试了几种方法,但都没有效果.特别是我遇到了非常非常奇怪的错误,就像一些模块或变量神秘地变得相等None......
我找到的唯一明智的资源是从pyunit 重新加载Python模块,但我没有检查它.我想要那样的东西.
一个很好的替代方案是让IPython重启,或以某种方式重启Python解释器.
那么,如果你用Python开发,你找到了什么解决方案来解决这个问题?
编辑
为了清楚起见:很明显,我理解一些旧的变量取决于模块的先前状态可能会存在.那个我能接受.为什么在Python中如此难以强制重新加载模块而不会发生各种奇怪的错误?
更具体地说,如果我将整个模块放在一个文件中,module.py那么以下工作正常:
import sys
try:
del sys.modules['module']
except AttributeError:
pass
import module
obj = module.my_class()
Run Code Online (Sandbox Code Playgroud)
这段代码很漂亮,我可以在不退出IPython的情况下开发数月.
但是,每当我的模块由多个子模块组成时,地狱就会松动:
import os
for mod in ['module.submod1', 'module.submod2']:
try:
del sys.module[mod]
except AttributeError:
pass
# sometimes this works, sometimes not. WHY?
Run Code Online (Sandbox Code Playgroud)
为什么我的模块在一个大文件或几个子模块中是如此不同?为什么这种方法不起作用?
我想提取a之后打印的信息,git status如下所示:
# On branch master
# Your branch is ahead of 'origin/master' by 2 commits.
Run Code Online (Sandbox Code Playgroud)
当然我可以解析输出,git status但不建议这样做,因为这个人类可读输出容易改变.
有两个问题:
origin/branch但不一定是这样.如果django模型包含外键字段,并且该字段以列表模式显示,则它显示为文本,而不是显示指向外部对象的链接.
是否可以自动将所有外键显示为链接而不是平面文本?
(当然可以逐场进行,但有一般方法吗?)
示例:
class Author(models.Model):
...
class Post(models.Model):
author = models.ForeignKey(Author)
Run Code Online (Sandbox Code Playgroud)
现在我选择一个ModelAdmin,以便作者以列表模式显示:
class PostAdmin(admin.ModelAdmin):
list_display = [..., 'author',...]
Run Code Online (Sandbox Code Playgroud)
现在在列表模式下,作者字段将只使用类的__unicode__方法Author来显示作者.最重要的是,我希望链接指向管理站点中相应作者的URL.那可能吗?
手动方式:
为了完整起见,我添加了手动方法.这将是author_link在PostAdmin类中添加一个方法:
def author_link(self, item):
return '<a href="../some/path/%d">%s</a>' % (item.id, unicode(item))
author_link.allow_tags = True
Run Code Online (Sandbox Code Playgroud)
这将适用于该特定领域,但这不是我想要的.我想要一种通用的方法来达到同样的效果.(其中一个问题是如何自动计算django管理站点中对象的路径.)
git ×5
python ×3
git-rebase ×2
django ×1
django-admin ×1
foreign-keys ×1
git-fetch ×1
git-status ×1
import ×1
indentation ×1
install ×1
ipython ×1
legend ×1
matplotlib ×1
pip ×1
scipy ×1
tabs ×1
timestamp ×1
virtualenv ×1