在git中查看特定提交的项目

时间:2016-04-05 07:59:57

标签: git

我被告知在特定时间点查看我们的项目是否已提交。我有一个长度超过20个字符的特定提交代码/哈希(在URL末尾的那个,不确定正确的术语)。

我可以看到存储库上的提交更改,但是如何在我的桌面上打开项目并实际处理提交时存在的项目?

我被告知git checkout head可以提供帮助,但我尝试git checkout head < commit code/hash here >并在终端中收到一条消息说&#34;错误,pathspec与git已知的任何文件都不匹配。&# 34;

2 个答案:

答案 0 :(得分:2)

首先需要将存储库重置为给定的提交。如果您想从那里开始工作,那么在该提交中创建分支可能会有所帮助:

git checkout -b mybranch <commit>

如果你没有创建一个分支,你将最终进入一个detached state,这通常会让你难以使用(如果你碰巧忘记了实际的提交ID,很容易丢失你的工作...... )。

如果您使用的是图形存储库历史记录浏览器(如gitk),您还可以:

  • 导航到有问题的提交
  • 在提交时创建一个新分支(在gitk右键单击提交消息 - &gt; 创建新分支)< / LI>
  • 查看分支(在gitk右键单击分支标签 - &gt;&#34; 查看此分支

答案 1 :(得分:1)

关于不同方式的完整解释可以在这里找到:
What is HEAD and to checkout specpfic commit ore reset the repository

<强> git checkout

git checkout
git checkout <commit_id>
git checkout -b <new branch> <commit_id>
git checkout HEAD~X // x is the number of commits t go back

这将检查指向所需提交的新分支。 此命令将签出到给定的提交。 此时,您可以创建一个分支,并从此开始工作。

# Checkout a given commit. 
# Doing so will result in a `detached HEAD` which mean that the `HEAD`
# is not pointing to the latest so you will need to checkout branch
#in order to be able to update the code.
git checkout <commit-id>

# create a new branch forked to the given commit
git checkout -b <branch name>

<强> git reset HEAD --hard <commit_id>

“移动”你的头回到所需的提交。

# This will destroy any local modifications.
# Don't do it if you have uncommitted work you want to keep.
git reset --hard 0d1d7fc32

如何查看影响当前分支的特定提交?

来自git v2.5

git worktree add <new_path>

git worktree将创建2个单独的工作文件夹,彼此分开,同时指向同一个存储库。

这将允许您对enw工作树上的任何经验进行操作,而不会对存储库本身产生任何影响。

以下是有关如何创建新工作树的示例及其结果:

enter image description here