git:如何从blob ID中查找文件历史记录

时间:2017-02-14 15:32:21

标签: git svn git-log git-blame

我试图用git复制Subversion的.gitattributes功能。我知道我可以使用ident设置git log属性,这样我就可以将blob ID嵌入到源代码注释中。这是基本要求,我已经完成了。

但我正在努力弄清楚如何在实际意义上使ID有用。 git blamegit show需要文件名,因此我无法使用该ID。 git log只显示blob内容,但不提供任何提交链接。

给定一个blob ID,我想要的是获取创建该blob的提交。 (最终,要获取文件的git blamefrom tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets('MNIST_data',one_hot=True) import tensorflow as tf sess = tf.InteractiveSession() x = tf.placeholder(tf.float32, shape = [None,784]) y_ = tf.placeholder(tf.float32, shape = [None,10]) W = tf.Variable(tf.zeros([784,10])) b = tf.Variable(tf.zeros([10])) sess.run(tf.global_variables_initializer()) y = tf.matmul(x,W) + b cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y,y_)) train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy) for i in range(10): batch = mnist.train.next_batch(100) train_step.run(feed_dict={x: batch[0], y_: batch[1]}) correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1)) accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) print(accuracy.eval(feed_dict={x: mnist.test.images, y_:mnist.test.labels})) 数据,或者能够签出包含该文件的修订版。)

我很欣赏像git这样的分布式系统中的提交历史比颠覆更复杂,但是如果我可以将任何东西作为起点,那就足够了。我真正需要的是能够证明给定源代码,我可以追溯到版本控制历史。

2 个答案:

答案 0 :(得分:0)

git tag命令怎么样?选中此链接作为起点:

https://git-scm.com/book/en/v2/Git-Basics-Tagging

答案 1 :(得分:0)

除了blob id之外,gitattributes手册还介绍了export-subst过滤器,因此您可以启用它并使用$Format:%H$添加提交哈希,或{{1}包含分支/标签名称。您必须使用$Format:%d$发布文件。

例如:

git archive