当我遇到 Dim objOutlook As Outlook._Application
objOutlook = New Outlook.Application()
Dim objNS As Outlook._NameSpace = objOutlook.Session
Dim objRecipient As Outlook.Recipient = _
objNS.CreateRecipient("John Smith")
'Dim eMail As Outlook.MailItem
'Dim travelunreadold As String
Dim vItems
Dim vvItems
Dim vOlderItems
Dim vOlderunreadItems
If objRecipient.Resolve Then
Dim objFolder As Outlook.MAPIFolder = _
objNS.GetSharedDefaultFolder(objRecipient, _
Outlook.OlDefaultFolders.olFolderInbox)
txtTravUnread.Text = objFolder.UnReadItemCount
'For Each eMail In objFolder.Items
' If eMail.UnRead = True Then
' travelunreadold = eMail.ReceivedTime
' Txttravundate.Text = travelunreadold
' End If
'Next eMail
vItems = objFolder.Items.Restrict("[Unread] = true")
vItems.Sort("ReceivedTime", False) 'ascending order
vOlderunreadItems = vItems.GetFirst
Txttravundate.Text = vOlderunreadItems
vvItems = objFolder.Items
vvItems.Sort("ReceivedTime", False) 'ascending order
vOlderItems = vvItems.GetFirst
Txttravemdate.Text = vOlderItems
txtTravEmails.Text = objFolder.Items.Count
'Txttravemdate.Text = oldest.recievedtime
Else
Console.Write("Recipient could not be resolved.")
End If
冲突时,我希望看到rebase
,--ours
和--theirs
所带来的变化。
所以,我检查了所有这些(字面意思):
HEAD
git checkout --ours <new_file>
...我检查文件......
vim <new_file>
git checkout --theirs <new_file>
...我检查文件......
vim <new_file>
git checkout HEAD <new_file>
...我检查文件......
然后,我返回结帐vim <new_file>
和theirs
:
ours
git checkout --theirs <new-file>
出于某种原因,vim <new-file>
和--theirs
在签出--ours
时都符合该版本。我理解HEAD
应该更改工作目录和索引,但即使我再次检出git checkout
,它仍然像--theirs
版本。< / p>
这是怎么回事?有没有办法恢复原来的HEAD
和--theirs
版本?谢谢。
答案 0 :(得分:2)
Git使用--ours
的{{1}}和--theirs
参数来选择要提取的冲突合并的“侧”。更确切地说,当你有一个冲突的合并时,对于每个冲突的(“未合并的”)路径,在该路径的git的索引/临时区域中有三个 1 条目。 Git对这些数字进行了编号:
git checkout
文件的合并基础版本
:1:path
文件的“我们的”版本
:2:path
文件的“他们的”版本
请注意:3:path
“缺失”,此处:插槽零保留用于已解析(合并)的路径。
当你:0:path
时,git认为你正在解决冲突。它抛弃了其他三个版本并填充了插槽0.事实上,如果用任何分支或“tree-ish”说明符(例如git checkout HEAD path
)替换HEAD
,它也会认为你正在解决冲突。
幸运的是,有一种方法可以告诉git(重新)创建合并冲突,重新填充其他三个插槽(并放弃插槽0中的版本):
git checkout branch1 path
Git的合并尝试照常在你的工作目录中结束。
一个小缺点是$ git checkout -m path
之后的符号丢失了(你实际上可以提供它们,因为它们来自特殊的git环境变量,但我认为它很少值得打扰)。 [编辑添加注释:我指的是在标记之后添加的额外信息,例如:
<<<<
这是我看到的“更多信息”消失了。]
1 更确切地说,最多三个条目:如果在合并的某些提交中删除了文件,则会忽略明显的条目。