每当我尝试添加github文件的链接时,我都会注意到这一点。您可以使用blob
添加链接:
https://github.com/facebook/pop/blob/master/Podfile
如果将blob更改为tree
,则会出现相同的文档:
https://github.com/facebook/pop/tree/master/Podfile
有什么区别?每当我想在文档中为后代添加链接时,我更喜欢哪一个?
答案 0 :(得分:5)
GitHub的网站当前似乎是:
let controller = (function(mdl, ui){
// (imported domStrings from model):
let DOM = mdl.getDomStrings();
let userInput = "scissors";
// a. Get user Input
document.querySelector(DOM.submit).addEventListener("click", (e) => {
e.preventDefault();
userInput = mdl.getUserInput();
getResult();
});
// b. get computer Input
let compInput = mdl.compInput();
// c. check whether the player wins, the computer wins or if its a draw
function getResult() {
if(userInput === compInput){
console.log("Draw!")
} else if(userInput === "rock" && compInput === "paper"){
console.log("Computer Wins!");
} else if(userInput === "rock" && compInput === "scissors"){
console.log("player wins");
} else if(userInput === "paper" && compInput === "scissors"){
console.log("computer wins")
} else if (userInput === "paper" && compInput === "rock"){
console.log("user wins");
} else if (userInput === "scissors" && compInput === "rock"){
console.log("player wins");
} else if (userInput === "rock" && compInput === "paper"){
console.log("computer wins");
} else if (userInput === "scissors" && compInput === "paper"){
console.log("computer wins");
}
}
// i. update score
// ii. display current score
})(model, UI)
用于文件,将blob
用于目录; tree
的文件URL的浏览器重定向为包含tree
的浏览器;和blob
的目录URL的浏览器重定向到包含blob
的URL。在您提出问题时,GitHub的网站可能只重写了tree
和tree
之间的文件URL,而没有正确地重定向它们。 (重写和重定向URL是Web服务器的活动。)如果是这样,则更改不会出现在浏览器的地址栏中。但是也许你不是那个意思。
答案 1 :(得分:4)
blob是文件的表示,文件差异被分成名为hunks
的连续修改块。 Hunks是@@
输出格式的git diff
分隔行。
树是目录的表示。有不同类型的树木:
工作树
实际签出文件的树。工作树通常包含HEAD提交树的内容,以及您已经进行但尚未提交的任何本地更改。
索引
包含stat信息的文件集合,其内容存储为对象。索引是工作树的存储版本。说实话,它还可以包含工作树的第二个甚至第三个版本,这些版本在合并时使用。
树肥胖型
指向提交对象,树对象或指向标记或提交或树对象的标记对象的引用。
Git的内部存储中有四种类型的对象。提交对象,带注释的标记对象,blob和树对象。
<强>参考强>
答案 2 :(得分:0)
我发现this文章很有帮助。这将详细解释git对象。
本质上,blob只是一堆字节,可以是任何字节,例如文本文件,图像,实际源代码等。
一棵树就像一个目录,它指向:
tree
/ | \
blob tree blob
|
blob
希望以上示例阐明了两者之间的区别。
在您的示例中,Podfile
是一个包含源代码的文件。因此,它是一个blob
对象。但是,git很聪明,并且意识到了这一事实。因此,当您单击链接时,它将链接中的tree
更改为blob
。您可以通过点击下面的tree
链接来尝试自己进行测试:
https://github.com/facebook/pop/tree/master/Podfile
Similary,如果您转到git存储库上的目录,则它是tree
对象。同样,如果将tree
更改为blob
,则git很聪明,并且意识到它实际上是目录而不是文件,因此将链接中的blob
更改为tree
。同样,您可以尝试自己进行测试:
https://github.com/facebook/pop/blob/master/pop-tests
关于要添加到文档中时首选哪个链接,取决于链接指向的内容,基本上有4种git对象:
希望能回答您的问题。我仍然建议阅读本文以全面了解git对象。