问题标签 [smartgit]
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.
git - 使用 SmartGit 进行版本编号
SmartGit 是否可以设置和自动增加版本号?
我阅读了一些关于标签的内容并将其设置在我的初始分支上(设置为“5.7.0”)。我需要手动设置这个标签,还是有一个插件可以在幕后为我处理版本控制?
git - 文件名的 GIT 合并文件内容不正确。(SmartGit/Hg || IntelliJ IDEA) && (P4Merge || KDiff3)
问题
在设置合并工具以解决冲突时,发送到合并工具的文件与其包含的内容不正确。我试过搜索 Stack Overflow,但没有找到答案。
细节
我是 GIT 的新手。为了了解更多信息,我在 Bitbucket 上建立了一个私人仓库。我有 Windows 7 64 位和以下软件:
- GIT 客户端:SmartGit/Hg
- 代码编辑器:IntelliJ IDEA Ultimate
- 合并:P4Merge || KDiff3
当从 SmartGit/Hg 调用 KDiff3 时:
(A) C:\Users\Username\AppData\Local\Temp\smartgit6393324384790956404tmp\compare_base_2787531226782357806_README.md
(B) C:\Users\Username\AppData\Local\Temp\smartgit6393324384790956404tmp\compare_ours_2686269382530657828_README.md
(C) C:\Users\用户名\AppData\Local\Temp\smartgit6393324384790956404tmp\compare_theirs_8849401324186420794_README.md
(OUTPUT) D:\Path\to\project\README.md
当从 IDEA 调用 KDiff3 时:
(A) C:\Users\Username\AppData\Local\Temp\Merge_Result2324777776464644375.md
(B) C:\Users\Username\AppData\Local\Temp\Local_Changes7034162268721107201.markdown
(C) C:\Users\Username\AppData\ Local\Temp\Changes_from_Server__revision_d7bcd6bd85df4f7bae648786dfa944825991b4f3_1371061438544389037.markdown
(OUTPUT) D:\Path\to\project\README.md
- (A) 正确显示基数,在IDEA“Merge_Result”的情况下令人困惑,但至少它具有基数数据。
- (B) 的内容是 HEAD 数据,它应该是 LOCAL。
- (C) 的内容是在应该是 HEAD 的地方显示 LOCAL 数据。
- (OUTPUT) 是应该保存合并/解析的冲突文件的正确位置。
我的理解是本地数据在 mine/ours/yours/local 文件中,而头部数据应该在 theirs/remote/head 文件中。
设置
SmartGit/Hg P4Merge 设置:
文件模式: * .md
命令: P:\Program Files\Perforce\p4merge.exe
参数: ${baseFile} ${leftFile} ${rightFile} ${mergedFile}
SmartGit/Hg KDiff3 设置:
文件模式: *.md
命令: P:\Program Files (x86)\KDiff3\kdiff3.exe
参数: ${baseFile} ${leftFile} ${rightFile} -o ${mergedFile}
解决问题后,我将更新文件模式。
IDEA KDiff3 设置:
可执行文件的路径: P:\Program Files (x86)\KDiff3\kdiff3.exe
参数: %2 %1 %3 -o %4
问题
P4Merge 和 KDiff3 都有相同的问题,这让我觉得我的本地 GIT 安装可能有问题,但我不知道下一步该去哪里进行故障排除和解决。我做错了什么,我该如何解决?
我想继续学习 Git,但如果我担心我的差异和合并工具(或它们正在使用的数据)的准确性,我就不能专注于此。
参考
P4Merge:http
://www.perforce.com/perforce/doc.current/manuals/cmdref/P4MERGE.html
KDiff3: http: //kdiff3.sourceforge.net/doc/documentation.html
我还有三个,但我没有足够的声誉来发布更多链接。它们相当于 Bitbucket、Araxis 文档和堆栈溢出页面,该页面引用了 P4Merge 中未记录的选项/参数/参数。我没有使用 Araxis,但他们有一些很好的说明,可以在许多不同的程序中找到您的冲突解决程序设置。
制造冲突
README.md(第一个版本)
拉。
README.md(通过 Bitbucket/网页编辑、提交、批准)
README.md(本地修改)
存储更改。拉。应用存储。恭喜!您现在有一个需要解决的冲突。
git - 当我签出我的主分支时,它实际上并没有在 git 中签出
我今天遇到了一种情况,在从上游分支拉出并重新定位之后,最近对上游分支的提交表现得好像它们没有生效一样。
我记得最好的症状:
在本地分支中编码时,Visual Studio 解决方案文件似乎在没有我干预的情况下不断被修改——它的新内容完全撤消了最近提交中的一个文件(但没有撤消其他 3 个 .cs 和 .prj 文件)。似乎 Visual Studio 正在这样做,但我不确定。(也就是说,
git status
显示了一个新修改的 .sln 文件,但我的更改不应该影响项目)。由于此文件已被修改并且解决方案不知道重要的新依赖项(添加到两个项目的引用),我无法构建解决方案。丢弃修改后的文件(理论上我希望从上游提交的最新提交中添加更改)并没有帮助。
我一直在本地开发分支中进行更改,但看不到我的单个本地提交如何导致奇怪——我只是没有进行这些更改。
我不止一次地关闭并重新打开了 VS,并清理并重建了解决方案。
SmartGit 日志显示除了我对本地分支所做的提交或更改之外没有其他提交或更改,并且是预期的。
为了消除任何混淆因素,我从本地开发分支切换到本地主分支(我通常保持未修改,没有任何新的提交)并重建项目,所有结果都相同。
我终于注意到 SmartGit 日志提供了 master 并不是真正的 master 的视觉证据。看一下 SmartGit/Hg 5.0.3 (build #2073) 的屏幕截图:
这是在 git 控制台中发出后的结果
git checkout master
。但是看看连接提交节点的蓝线:它表明我真的签出了历史上第 11 次提交!如果我发出
git checkout master^
,那么它会正确检查第二次提交,并相应地调整蓝线。如果我通过 SHA 检查最近的提交,
git checkout a07df46
那么蓝线一直延伸到最顶部的提交。当我这样做
git show-ref
时,它表明它refs/heads/master
指向来自上游的最新提交的 SHA——正如预期的那样。我尝试了以下一系列命令,这些命令对事物的状态没有任何改善(SHA 是来自上游最近提交的命令):
/li>
我想做的就是让我的存储库重新同步,这样我就可以继续开发了!
如果不能很快搞清楚,我会把我所有的本地分支推送到个人远程fork(不同于上游主项目),删除我的本地仓库,在本地重新克隆上游仓库,然后拉取我关心的任何分支都从我的叉子回来。但是,我真的很想知道 git 是如何进入这种奇怪的 master-but-not-master 状态的。
如何在不重新克隆整个存储库的情况下从这种奇怪的状态中恢复?
git - smartgit 将 origin/local 重新定位到本地/或相反方向
当我使用pull 和 rebase 本地更改 或仅获取 origin bracnh 然后通过“rebase HEAD To”手动将本地头 rebase到 origine/local 分支时......发生合并冲突但没关系......
只有两件事让我感到不安:-首先,这之后的头部不指向本地分支,现在他指向了该分支的最顶层提交,因此 - 第二个变基过程没有开始(然后它开始我们可以看到读取颜色标题“变基”在头名之后)。
有人可以对此有所了解。另外,补充一下,我尝试在我朋友的电脑上执行相同的操作,一切正常!我也想有清晰的日志。但我仍然没有解决这个问题,我使用合并分支。请帮忙!
git - 使用不同的 root 重放 repo 上的 git 提交
我是sourceforge 上FreeGLUT项目的当前维护者之一。此代码存储在 SVN 存储库中,但为了激发其他人的贡献,我想提供一个 git 存储库。我已经在 github 上有一个 git-svn 的 svn trunk 克隆,目前在github 上(通过SmartGit制作,实际上与 git-svn 并不真正兼容)。
我通过克隆制作了这个https://svn.code.sf.net/p/freeglut/code/trunk/freeglut
。然而,我现在发现我应该克隆https://svn.code.sf.net/p/freeglut/code
并让 SmartGit 的 svn 桥找出分支和树干。
我在本地制作了这个新的正确克隆。现在的问题是:我的本地 git 存储库中已经有一些旧/错误克隆的提交。我想将这些转移到我的新仓库中,但由于磁盘上的根目录不同,因此此处概述的简单变基策略不起作用(我认为)。
我可以使用补丁来做到这一点,就像在补丁文件中为路径添加前缀git apply
的--directory
参数一样,可以让事情正常工作,但是我必须通过提交来提交。至少,我还没有找到一种方法将多个提交放在一个补丁文件中(没有压缩)并在我的HEAD
.
如何最好地解决我的问题?
git - 如何将全局 gitignore 添加到 SmartGit/hg?
我创建了一个全局.gitignore
文件(请参阅https://help.github.com/articles/ignoring-files#global-gitignore),但是如何在不将其添加到存储库的情况下将其用于 SmartGit 中的所有项目?
git - 一次查看多个 Git 日志的工具
我的任务是确保我们的主分支定期合并到我们的开发人员分支中。
我们的结构是这样的。我们有 4 个存储库,在每个存储库中我们都有一个主 master 分支,以及大约 5-10 个在任何给定时间都在工作的开发人员分支。开发者分支可以在一天到 3 个月之间处于活动状态,并且分支的名称从不重复。
每周一次,我需要检查所有开发者分支以及主分支,并跟踪哪些分支已合并,哪些尚未合并,以及上次合并发生的时间。
我目前正在通过使用 SmartGit 并切换到分支并检查日志等来执行此操作,但是我希望使此过程更快甚至可能自动化。
是否有执行此操作的工具,是否有我可以编写的 bat 脚本来执行此操作?
查看其他与 git 相关的问题,我发现我可能会使用一些组合
和
但我必须遗漏一些东西,这将使这比当前的手动方法更快、更容易。
编辑:
到目前为止的答案非常有希望,这让我想增加两个皱纹。
- 我需要跟踪两个方向。当开发者分支从 master 合并时,以及何时合并到 master。
- 我们还有第三个分支,我也需要监控它,称为“生产”。将 master 与其他分支进行比较的答案是否也可以将“生产”分支与各种命名的开发人员分支进行比较?
git - 如何自定义 UnGit 分支图?
我正在使用 ungit 在我的项目中可视化分支和合并。我不将 git 仅用于编程目的,并且有很多分支和合并。目前我已经测试了从git log和gitk到Source Tree的一些应用程序。(请检查这个问题)。
但是我想知道是否可以在下图中轻松调整和自定义节点和分支。我知道这在技术上是可行的,但我不熟悉 CSS 或 js 等。但是我喜欢学习新工具,只要它们为这个问题提供直接的解决方案。我可以选择向 ungit 开发人员提交请求,但我想事先了解可能的家庭疗法。
这是一个 git 树的例子:
git - 在 smartgit 中变基“git-am 正在进行中”
我将尝试解释我遇到的问题。我已经rebase
多次通过 git bash 使用该选项。现在我有了 SmartGit,不知道为什么rebase
不正确。
步骤1:
第2步:
第 3 步:
结果是HEAD
分离。
git - SmartGit:创建新分支时如何设置基础分支?
我正在尝试从 TortoiseGit 迁移到 SmartGit。
TG 有非常清晰的创建新分支的界面:
但在 SmartGit 中,我发现只有“Branch -> Add Branch”,它显示了很差的对话框:
每次我想创建一个新分支时,我都不想切换到某个基本分支。有没有办法像在 TG 中一样在 SmartGit 中选择基础分支?