Eclipse Egit。 Checkout创建新提交。为什么?

时间:2017-09-08 07:08:26

标签: eclipse git egit

据我了解GIT,当我在提交时签出时,我应该将其文件复制到我的工作目录中,但是不应该出现新的提交。虽然当我在提交时使用EGit和checkout时,我在reflog中看到了新的提交。为什么?据我所知,checkout不应该创建新的提交。正确?

在这里,我右键单击提交并选择结帐

enter image description here

然后我在reflog中获得新提交:

enter image description here

所以现在我的本地主人很少提交,但我从未要求他们这样做。

Eclipse的Git集成 - 以任务为中心的界面 4.6.1.201703071140-r org.eclipse.egit.mylyn.feature.group Eclipse EGit

2 个答案:

答案 0 :(得分:2)

您在reflog中看不到新的提交。你看到的是HEAD的更新位置。您在签出时将其更改为提交import random attempts = 0 secret_number = random.randint(1,100) isCorrect = False guess = int(input("Take a guess: ")) while secret_number != guess: if guess < secret_number: print("Higher...") guess = int(input("Take a guess: ")) attempts+= 1 elif guess > secret_number: print("Lower...") guess = int(input("Take a guess: ")) attempts+= 1 else: print("\nYou guessed it! The number was " ,secret_number) 。当您签出另一个提交,分支或标记时,您将看到另一个条目出现在reflog中。

尝试重复切换两个分支,你会看到同样的两个提交哈希值一次又一次地附加到reflog。这并不意味着您正在创建新的提交。您只是看到现有提交被记录为4b0d96a指针指向的最近提交。

来自git reflog docs

  

此命令管理reflog中记录的信息。

     

“show”子命令(在没有任何子命令的情况下也是默认命令)显示命令行中提供的引用的日志(或默认情况下为HEAD)。 reflog包含所有最近的操作,此外HEAD reflog记录分支切换。 HEADgit reflog show的别名,请参阅git-log以获取更多信息。

您可能还会发现此chapter of the Pro Git book有趣。它提供了对git log -g --abbrev-commit --pretty=oneline;所做内容的更易理解的描述。

答案 1 :(得分:2)

您必须使用历史视图而不是使用 Git Reflog 视图(请参阅git reflog和{{3详情):

  1. 告诉历史记录视图应显示哪些历史记录:e。 G。 Git存储库 中查看右键单击存储库,然后选择: Show In&gt;历史
  2. 历史视图中启用选项显示所有分支和标记 (视图工具栏中的右键)。否则,仅显示当前分支的提交。