问题标签 [git-tfs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-studio-2012 - 将本地 VS2012.2 项目连接到 tfs-git
我很难找到我问题的确切答案。抱歉,如果它被问了很多次。
我已经在 Visual Studio 2012 Update 2 上开发了一段时间,并且跟踪并保存了 TFS-GIT 存储库中的更改,以及存储在我硬盘上的等效本地存储库。
大约两周前,我的笔记本电脑被盗了。我已经把我所有的工具都放回了一台新的笔记本电脑上,但我在努力让我的项目恢复到它被盗之前的状态。
本质上,我可以在我的硬盘驱动器上本地查看 Visual Studio 项目及其本地 git 历史记录。我还可以在 TFS 中看到具有完全相同历史的远程版本。我在我的视觉工作室本地打开项目,然后尝试连接到远程 tfs 存储。当项目加载时,项目中的所有文件和文件夹在每个文件上都有挂起的删除符号(红色叉号),就好像远程连接已经在一个文件夹中变高并且两个结构不同步彼此。
谁能帮助我如何正确地将两者重新连接在一起
git - 如何在我的 git 日志中获取 TFS 签入 ID?
目前查看 tfs checkin id 的唯一方法是使用 git log 命令。与任何其他 git 用户一样,我有我的美化 git 日志,所以我想将 tfs checkin id 标志包含到我的 git 日志中。
如果有一个标志可以用于我的美化日志以了解提交是本地 git 提交还是 tfs checkin 提交,那也是一个加分项。
这是我返回最后十次提交的 git 别名:
我想实现这样的目标:
它应该如下所示:
git - 如何使用 git-tfs 清理损坏的历史记录
我不确定我是如何进入这种状态的(*),但是我的 tfs/default 远程分支中有一些提交在 TFS 中不存在,所以我想摆脱它们。所以我的历史是这样的:
...但提交 B 和 C 实际上并不是 TFS 中的变更集。结果,当我签出 tfs/default 时,由于提交 B 和 C,我与 TFS 不同步。不好。
我想如果我能以某种方式将 tfs/default 远程重置为 A 并执行另一个“git tfs fetch”以得到实际的历史记录,我可以修复它:
但我不知道该怎么做?
*) 如果它有任何区别,我认为它涉及在 B 和 C 上使用“git tfs shelve”,然后可能是一些提交和“git tfs pull”。但我不确定。
git - 使用 git clean 后,我删除了被检测为更改的文件?
所以我有一个 git 存储库。我正在使用在 Cygwin/Windows 8 下运行的 git 1.7.9。
这个 git 存储库有这种奇怪的行为,因此它认为某个目录的某些子目录被跟踪,但包含它们的实际目录不是。
所以,我得到这样的奇怪:
但是,然后,以另一种方式添加文件:
如果我从那里提交,那么它当然会在尝试推动时引发疯狂的冲突。
偶尔git reset --hard
会修复它,但有时不会。我发现摆脱它的最好方法是检查一个新分支,删除我工作副本中的所有内容并运行git reset --hard
.
有没有其他人经历过这种奇怪的行为?我正在使用 git-tfs,这可能意味着这是一个错误,但在大多数情况下,它是一个常规的 git 存储库,所以我认为这并不重要。
git - 将现有 Git 存储库拉入具有完整历史记录的子树(无压缩)
我们目前在我们的组织中使用 TFS,但正在研究 TFS 2013 的内置 Git 支持。我想从 TFS 中提取一个现有分支及其所有历史记录到 Git 中一个不同命名的子文件夹中(是的,我意识到为每个分支创建一个单独的 Git 存储库会更好,但是“出于某种原因”我不能做那件事)。
所以我使用 git-tfs 将 TFS 历史克隆到一个新的 repo 中。任何 Git 更改都不会被推回 TFS,所以那里没有问题。
然后我在本地克隆了新的 repo 并将oldtfs添加为远程。
接下来,我首先尝试使用子树合并将提交从oldtfs拉到newtfs并在本地提交。
它似乎运行良好(“git log”在正确的位置显示了所有历史记录)但是当我推回 TFS 时,它似乎只是一个合并提交,尽管它确实有两个父级,正如我所期望的那样。之后多读一点,听起来我需要一个变基。
所以我在newtfs中创建了两个分支import和squash。我在import中执行了子树合并,然后重新设置为squash。
然而,这样做的结果是import现在在其根目录(不是 /MyProject/MyDir)中包含所有原始 TFS 提交,并且squash似乎不受影响。
接下来,我尝试使用来自 contrib 的新“git subtree”脚本(在远程 TFS 的新克隆中)
同样,在本地看起来很棒,但推回 TFS 服务器显示所有内容都压缩到一个子树提交中(但同样有多个父级)。
最后,我尝试了将 git subtree 变基为具有共同祖先的第二个分支。和以前一样的问题:我导入的提交不再在子目录中。
那么我对rebase的理解是不正确的,还是只是子树合并和子树脚本不兼容?
我的下一个方法是在导入或变基之前尝试filter-branch重写oldtfs (同样, oldtfs在达到导入目的后将永远不会被共享/上传)。这是这里最好的选择吗?
(我想“做对”的原因是我想发布一个可重复的配方或脚本供部门中的其他人以类似的方式使用)。
git - 连接到 TFS 服务器会关闭 Git 解决方案
我正在使用带有新的内置 Git 支持的 Visual Studio 2013。我们的项目在 TFS 2010 中管理,但由于惯性/固执,我使用git-tfs进行源代码控制。我仍然使用 TFS 问题跟踪器等。
在 VS2012 中,这很好用 - VS 只是认为该解决方案不受任何支持的源代码控制,让我可以很好地使用 TFS 工作项。然而,在 VS2013 中,该项目被检测为在 Git 下管理。这使得 VS 的 TFS 集成几乎不可用。
这意味着我在处理我的解决方案时没有连接到团队项目。当我连接到 TFS 时,解决方案会关闭。反之亦然 - 重新打开 Git 管理的解决方案会关闭我打开的所有工作项查询并断开我与 TFS 的连接。
有没有办法解决这个问题?禁用内置的 Git 支持,或者我错过的设置?
git - 可以使用 git 项目并查看 VS2013 中的 TFS 工作项吗?
所以我已经升级到 VS2013,希望能用于所有开发。不过,有一件事真的让我很生气。我的团队使用 TFS,而我更喜欢 git,所以我使用 git-tfs 将两者连接起来进行源代码控制。我们使用 TFS 工作项来跟踪错误和故事等。如果重要的话,我也更喜欢 GitExtensions 而不是 VS2013 的内置 git 支持。
无论如何,当我在 git-tfs 存储库下打开一个解决方案时,VS2013 只会在 Team Explorer 选项卡下向我显示 git 选项。因此,当我想进行 TFS 工作项查询时,我必须执行 Connect Team Project > FooProject 或类似的操作。此时,VS2013 将非常有帮助地关闭我打开的解决方案。所以,基本上我无法同时查看工作项并在 VS2013 中打开解决方案。这似乎是一个粗略的设计疏忽。
无论如何,在打开 git 项目的 VS2013 实例中查看工作项查询和/或是否可以完全禁用 Visual Studio 2013 的 git 支持,因为无论如何我更喜欢 GitExtensions?
git - 同步 TFS 和 GIT
今天,我们在本地 TFS 服务器上拥有所有源代码。现在我们希望一些外部方可以访问部分代码。因此,我们研究了将代码克隆到他们可以访问的外部 GIT 服务器的可能性。
我看过git-tfs。但是,如果我理解正确,您必须在其中任何一个发生更改时手动同步 GIT 和 TFS。有没有办法克隆自动同步的代码。
如果 TFS 有变化,它会自动同步到 GIT,反之亦然。如果我使用最新的代码,应该没有不确定性
git - 将 Git 迁移到具有所有历史记录的 TFS
有什么方法可以将 git 存储库迁移到 TFS,其中包含版本、分支和推送消息等所有历史记录?现在源在 Github 上,我想将它迁移到我的本地 TFS 存储库。
git - 合并通过 git-tfs 导入的两个 Git 仓库
我们一直在使用git-tfs导入三个主要文件夹,它们在我们的 TFS 存储库中并排存在于三个单独的 Git 存储库中。现在我们想使用 . 将它们合并在一起git --filter-branch
。有没有办法在不中断与 TFS 的链接的情况下做到这一点,以便我们可以继续获取 TFS 中仍在进行的任何更改?