标签: tortoisegit

TortoiseGit 克隆的 SVN 存储库为空

注意:我在 CLI git/git-svn 中看到过有关此情况的问题,但在 TortoiseGit 中没有看到任何问题。

我下载并安装了 Git 和 TortoiseGit。我已经有一个远程 SVN 存储库,并且安装了 TortoiseSVN,如果这有什么区别的话。

创建空目录后,我使用右侧上下文菜单,如下所示:

  • 克隆
  • 输入我的 SVN 存储库的 URL
  • 进入我刚刚创建的本地目录
  • 单击“来自 SVN 存储库”
  • 取消选择标签和分支,因为我的 SVN 存储库没有它们
  • 不选中“发件人:”框(稍后会详细介绍)

当我点击“确定”时,会弹出一个窗口,显示它正在连接到存储库,并且它会滚动浏览所有修订版本,直到 r 1693,这是我的最新版本。它显示“成功”,并且我的本地文件夹中有一个 .git 目录。但没有文件。

我按如下方式摆弄它:

  • 拿来
  • SVN 获取
  • SVN 变基
  • 将修订号更改为 0
  • 将修订号更改为 1
  • 将修订号更改为我的最新版本

SVN Fetch 似乎是显而易见的选择。当我更改修订版号时,克隆操作失败并显示以下消息:

git did not exit cleanly (exit code 1) (16078 ms @ 12/16/2013 10:31:27 AM)
Run Code Online (Sandbox Code Playgroud)

我要开始摆弄 CLI,但我怀疑我也会遇到同样的问题。毕竟这是一个非常基本的操作。感谢您的帮助。

svn git clone git-svn tortoisegit

5
推荐指数
1
解决办法
2367
查看次数

Tortoise Git 中“强制”和“如果存在则覆盖分支”的区别

TortoiseGit 覆盖分支

我在一个小团队中使用 git,并使用 TortoiseGit 作为客户端。每天,我发现我的本地分支在分支后面提交了一些提交,没有任何本地更改。

我的行动方针是从远程更新开始,然后切换/签出到<remote branch>. 如果我已经有相应的本地分支,我需要选中ForceOverride branch if exists复选框才能继续。

问题:两者有什么区别?


进一步阅读:我知道还有其他可能性,例如Pull、 或Reset branch to this。由于各种原因,上述过程恰好是我最喜欢的。

git tortoisegit

5
推荐指数
1
解决办法
5940
查看次数

项目根目录中的 .gitignore 不会被子目录中的 .gitignores 覆盖

在项目根目录中,我有.gitignore一个文件忽略除 gitignore 文件之外的所有内容。这是文件的内容:

**/*
!.gitignore
Run Code Online (Sandbox Code Playgroud)

然后implementation/xml/我有另一个包含以下内容的 gitignore 文件:

!**/*
Run Code Online (Sandbox Code Playgroud)

然后在implementation/xml/ant/中我创建了名为texd-odt-build.xml完整路径的新文件(/implementation/xml/ant/texd-odt-build.xml)的新文件。

现在是第二个 gitignore 文件,它位于项目根目录中的文件(gitignore 文件)下面的两个文件夹中。那么第二个 gitignore 应该覆盖根目录中的那个,对吧?但使用 bash 我发现它 texd-odt-build.xml仍然在忽略列表中。

为了检查它,我使用了这个命令:git status --ignored。“孩子”gitignore 不工作的原因可能是什么?

git tortoisegit

5
推荐指数
1
解决办法
2387
查看次数

文件夹的上下文菜单不包含“添加到忽略列表” tortoisegit

我使用 TortoiseGit 1.8.16。但文件夹的上下文菜单不包含“添加到忽略列表”选项。

右键单击存储库中的文件夹。我希望在上下文菜单中看到“添加到忽略列表”。该项目不在上下文菜单中。

如何通过TortoiseGit添加忽略文件?

tortoisegit

5
推荐指数
1
解决办法
5459
查看次数

仅合并 git 中选定的更改

我提交了一个文本文件并将其推送到主分支。我的同事从主分支中创建了一个单独的分支,并对文件进行了一些更改 - 他对文本进行了修订。更改是在单个提交和单个文件中进行的。

现在,我想将他的一些更改合并到 master 分支中的原始文件中。但!我不想接受一切,只想接受一些改变。

更改是在同一文件的不同行上进行的:修订版中更改了一些行,添加了一些行,删除了一些行。我怎样才能做到这一点?

如果我正确理解 git,将修订分支简单合并到 master 将不会检测到冲突,因为我没有在 master 分支中进行任何更改。此外,合并只会应用分支/提交中所做的所有更改。但是,我只想应用在线(比方说)#20、50、69 所做的更改。我想忽略其他更改,因为我不同意它们。

如何使 git 在所有更改的文件上产生冲突,以便我能够选择是否接受更改?我需要一些互动方式。

例如,在 MS Word 中,可以跟踪更改。然后,每个更改都可以被接受(采用新版本并删除旧版本)或拒绝(保留旧版本并丢弃更改)。然后,更改不再突出显示。

我正在 MS Windows 10 上使用 TortoiseGit 应用程序,在 git 版本 1.9.5.msysgit.1 上运行。因此,如果有一种使用客户端的方法,我会更喜欢它。

git git-merge tortoisegit

5
推荐指数
1
解决办法
3229
查看次数

TortoiseGit:覆盖图标适用于文件夹,不适用于文件

我正在使用 TortoiseGit,覆盖图标显示的是文件夹而不是文件。我遇到了这个页面http://blog.garethjmsaunders.co.uk/2015/03/22/managing-overlay-icons-for-dropbox-and-tortoisesvn-and-tortoisegit/我尝试过,但仍然没有解决不了问题。

现在在我的注册表/ShellIconOverlayIdentifiers 中,Tortoise 图标优先于任何其他应用程序。

有任何想法吗?

谢谢。

registry icons tortoisegit

5
推荐指数
1
解决办法
1595
查看次数

如何删除已经与 TortoiseGit 合并的本地 Git 分支?

我想找到这里很好描述的问题的解决方案- 简而言之,这个问题可以通过git branch -d $(git branch --merged)使用命令行来解决 - 问题是,是否有可能在 TortoiseGit 中做同样的事情?

branch tortoisegit

5
推荐指数
1
解决办法
3045
查看次数

可以将同一文件中的更改拆分为 git 中的不同提交吗?

抱歉,如果某处有重复的内容,我在寻找解决方案时淹没在大量更改提交消息的技巧中(这对我没有帮助)。

我有两组更改每个更改应该是一次提交的一部分。不幸的是,我在早上开始了第二个变更集,没有注意到我忘记在前一天晚上提交第一个。

在大多数情况下,它们会影响不同的文件。但是,有一个文件包含两个变更集的更改,如果在没有第二个变更集的情况下推送会破坏构建。太糟糕了,我想在一个单独的分支上工作,直到功能正常。

可悲的是,当我注意到有一个包含两者更改的文件时,我已经提交(未推送)第一个变更集并在其上创建了工作分支

有没有办法编辑我的提交,以便我可以提取影响变更集 2 的更改?

在 Mercurial 中,您可以通过以下方式解开提交

  1. 将它们转换为补丁,
  2. 在文本编辑器中打开它们并
  3. 在补丁文件之间移动差异行(如果当时您的 Mercurial GUI 未打开)。

当 GUI 重新打开时,补丁包含了它们应该包含的内容,可以完成并推送。

这实际上是我的目标工作流程。git有类似的东西吗?

我使用的工具:Win10 上的 TortoiseGit 和 GitExtensions

编辑:答案中建议的解决方案

git checkout new_branch
git reset -p HEAD~1
git add -p
...
git commit -m "my changeset 1"
git add
git commit -m "my changeset 2"
git checkout old_branch
git reset --hard <new_branch>~1
Run Code Online (Sandbox Code Playgroud)

这给了我old_branch变更集 1 和new_branch变更集 2。

再次感谢!

git tortoisegit git-extensions

5
推荐指数
1
解决办法
1468
查看次数

TortoiseGit 等效于“TortoiseSVN --&gt; 显示日志 --&gt; 恢复到此修订版”

我正在寻找一个 TortoiseGit 操作,它相当于:

TortoiseSVN --> Show log --> Revert to this revision
Run Code Online (Sandbox Code Playgroud)

在 TortoiseSVN 中,此操作将本地存储库恢复为选定的修订版本,同时保持所有更改的文件签出。

换句话说,更改后的文件会在我执行时显示TortoiseSVN --> Check for modifications,当我完成对已恢复的修订版的测试后,我可以轻松放弃这些更改。

出于某种原因,我发现在 TortoiseGit 上执行这个有用的操作非常困难。

我目前使用的解决方法是:

  1. 履行 TortoiseGit --> Show log --> Export this revision...
  2. 将输出文件复制到我的本地存储库

有没有更直接的方式呢?

我已经尝试了以下 TortoiseGit 操作,但它们只会对我的本地存储库“造成严重破坏”,之后我无法继续执行“标准”提交和推送过程:

  • Reset "master" to this...
  • Switch/Checkout to this...
  • Rebase "master" onto this...
  • Revert change by this commit

我在这里发现了一个类似的问题,但答案建议的选项在我的 TortoiseGit 弹出菜单中甚至都不可行。

非常感谢您的帮助。

svn git tortoisesvn tortoisegit

5
推荐指数
1
解决办法
258
查看次数

5
推荐指数
1
解决办法
4044
查看次数