我无法理解Git
的结帐流程
通过cli我们做:
git log
和历史
1)我们如何知道我们想要查看的文件/版本?我只看到哈希/作者/评论/日期。不是文件名。
2)如果我git checkout -commitid-
,那么我会转到之前的版本。这与在ClearCase中办理退房手续相同吗?
3)要返回我做的最新更改:git checkout master
。这将返回到最新版本,但是它会检查最新元素吗?
答案 0 :(得分:2)
我认为你混淆了其他版本控制系统使用的术语。
git checkout
是用于切换您正在处理的分支的命令。 git checkout master
将切换您在主分支上工作。 git checkout test
会导致您在名为test的分支中工作。
试着回答你的问题:
git reset
命令的先前状态。 git checkout -commitid-
实际上将分离你的HEAD指针并让你没有检出分支。这可用于查看提交时状态是什么答案 1 :(得分:2)
与ClearCase相反(参见my old answer),git不能逐个文件运行。
没有“配置规范”和“元素选择规则”。
git checkout
可以应用于文件,但默认情况下,它会还原所有树的内容,而不仅仅是文件。
并且它与cleartool checkout,
不同,因为您不必标记(甚至锁定)文件以进行修改(如ClearCase中的CHECKEDOUT
状态):这不会感知分布式环境。 git工作树中的每个文件都可以随时修改,添加到索引并在本地提交。
答案 2 :(得分:0)
在git中,分支只是提交的链接,这些提交由哈希唯一标识。如果要签出特定提交,则需要知道其哈希,或者您应该对提交有“引用”。分支和标签都是提交的“引用”,因此您可以使用分支名称而不是提交哈希来签出该提交中的文件。
3)要返回我做的最新更改:git checkout master。这个 返回到最新版本,但它会结帐到最新版本 元件?
取决于你对最新版本的意思。如果最新你的意思是最新的提交,那么最新的提交可能在另一个分支上,而不是master
分支。 git reflog
会显示所有参考文献中最近更改的列表。