相关疑难解决方法(0)

我可以在Mercurial压缩提交吗?

我有一对应该只是一个提交.如果我使用git,我会使用:

git rebase -i <some-commit-before>
Run Code Online (Sandbox Code Playgroud)

然后压扁它们.

我可以用mercurial做到吗?如果是这样,怎么样?

mercurial

105
推荐指数
4
解决办法
5万
查看次数

如何才能看到Git合并冲突的"三方差异"?

假设我在Git分支master和我git merge featurebranch.发生了冲突foo.html.

当我打开时foo.html,我看到,在冲突地区,有什么master和有什么featurebranch.但我无法确切地说,master这种冲突方面做出了哪些改变featurebranch ; 我只知道主人现在有什么.

我想看看每个应用的差异.

或者,为了获得相同的信息,我可以看到:

  • 版本master现在
  • 版本featurebranch现在
  • 该版本他们共同的祖先

我怎么能看到这个?

git

60
推荐指数
2
解决办法
2万
查看次数

为什么git stash pop说它无法从存储条目中恢复未跟踪的文件?

我有一堆阶段性和非阶段性的更改,我想快速切换到另一个分支然后切换回来.

所以我使用以下方式进行了更改:

$ git stash push -a
Run Code Online (Sandbox Code Playgroud)

(事后我可能会用--include-untracked而不是--all)

然后,当我去弹出藏匿处时,我遇到了很多错误:

$ git stash pop
foo.txt already exists, no checkout
bar.txt already exists, no checkout
...
Could not restore untracked files from stash entry
Run Code Online (Sandbox Code Playgroud)

似乎没有从藏匿处恢复任何更改.

我也试过,$ git stash branch temp但显示相同的错误.

我确实找到了解决这个问题的方法:

$ git stash show -p | git apply
Run Code Online (Sandbox Code Playgroud)

现在避免了灾难,但这提出了一些问题.

为什么这个错误首先发生,下次如何避免?

git git-stash

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

git合并冲突究竟是如何发生的?

我已经创建了一个git存储库并添加了一个文本文件.这是100%用于学习目的.

  1. 我在文本文件中添加了"1"并将其提交给master.

  2. 从master创建一个新分支并附加"2".

  3. 最后,从master创建了一个分支并附加了"3".

您能解释一下这个或任何其他场景中可能发生的冲突吗?

git github git-merge merge-conflict-resolution git-branch

39
推荐指数
2
解决办法
2万
查看次数

如何在SourceTree中使用VS Code作为合并和差异工具?

这个问题和其他一些人讨论了如何在Mac上运行,但我无法在Windows上找到MS或Atlassian的文档,而无需尝试将其作为全局git设置.(我更喜欢在可能的情况下在IDE中更改内容.)

在SourceTree的"选项"对话框"差异"选项卡中使用"自定义"设置时,有哪些参数用于与VS-Code进行差异和合并?

git atlassian-sourcetree visual-studio-code

22
推荐指数
4
解决办法
9516
查看次数

git中vimdiff和vimdiff2有什么区别?

他们之间有什么区别?我的搜索引擎结果只讨论vimdiff,但命令

git mergetool 
Run Code Online (Sandbox Code Playgroud)

给我两个.

git vim vimdiff

17
推荐指数
1
解决办法
6486
查看次数

git`inco --squash`不会添加"Merge"标头来提交

我想知道所有工具如何知道哪些分支/提交被合并,直到我在提交中找到"合并"标头.

我的问题是:为什么a git merge --squash不添加那个标题,同时git merge呢?

换句话说:为什么我看到的合并边缘与合并时git merge同时有没有边git merge --squash

谢谢.

一些修改的信息:

使用"merge-header"我的意思是git log合并后的第二行:

commit 7777777
Merge: 0123456 9876543
Author: Some Body <...>
Date:   Fri ....
Run Code Online (Sandbox Code Playgroud)

...而git merge --squash不会产生线,我的假设是,git的GUI工具读取头能够得出"合并边"看到下面的图片.

我的问题再次相同,见上文.

git merge

8
推荐指数
1
解决办法
1626
查看次数

Changelog的自定义git合并联合策略

我们有一个ONGOING.md文件,每个开发人员在推送代码时添加项目.
看起来像 :

### Added
- item 1

### Changed
- item 2
Run Code Online (Sandbox Code Playgroud)

当拉/推代码时,所有行都被覆盖,所以我.gitattributes在repo root 添加了一个文件:

ONGOING.md -text merge=union
Run Code Online (Sandbox Code Playgroud)

我希望在此之后保留每个书面行,但事实并非如此,覆盖仍然发生.

处理这个问题的正确方法是什么?

编辑:

好的,它刚刚发生,所以我复制/粘贴我的终端的内容:

$ more fab/hotfix/ONGOING.md 
### Added

$ nano fab/hotfix/ONGOING.md; git commit fab/hotfix/ONGOING.md -m "update ongoing"

$ more fab/hotfix/ONGOING.md 
### Added
- add slug column to BO fack topic  admin  page

$ git pull
remote: Enumerating objects: 14, done.
remote: Counting objects: 100% (14/14), done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 14 (delta …
Run Code Online (Sandbox Code Playgroud)

git changelog

8
推荐指数
1
解决办法
1046
查看次数

合并时,Git 是否只考虑提交的时间戳而不是它属于哪个分支?

我在 Git 中有两个主要分支:masterdev.
我的分支结构如下所示:

B-->E-->F-->G (master branch)

B-->C-->D-->H-->I-->J-->K (dev branch)
Run Code Online (Sandbox Code Playgroud)

之前,我进行了合并,masterdev有一个共同的母公司B
在提交EFG掌握的,我删除了一些文件(说foobar)不正确,而他们在提交仍然存在C起在dev分支。
结果,当我执行三向合并以加入GK创建 commit 时LL不再包含 foo 和 bar !Git 没有以任何方式通知我他们的失踪。

在我看来,由于EFG进行了简单的重播后提交C因此foobar都不见了。

Git 合并的这种行为对我来说很奇怪。因为我无法知道是否有人从另一个分支删除了一些文件。
我不应该至少在合并时收到有关任何冲突修改的通知吗?

git github

4
推荐指数
1
解决办法
1566
查看次数

什么是二路和三路差异/合并?

1 <- 2 <- 5 (merge commit) <- master <- HEAD
 \       /
  3 <-- 4 <- dev
Run Code Online (Sandbox Code Playgroud)
  1. 双向合并是否仅使用提交24合并期间?如果我是对的,那么在什么情况下使用双向合并?
  2. 什么是双向差异?
  3. 什么是三向差速器?

git

4
推荐指数
1
解决办法
4546
查看次数