我有一对应该只是一个提交.如果我使用git,我会使用:
git rebase -i <some-commit-before>
Run Code Online (Sandbox Code Playgroud)
然后压扁它们.
我可以用mercurial做到吗?如果是这样,怎么样?
假设我在Git分支master和我git merge featurebranch.发生了冲突foo.html.
当我打开时foo.html,我看到,在冲突地区,有什么master和有什么featurebranch.但我无法确切地说,在master这种冲突方面做出了哪些改变featurebranch ; 我只知道主人现在有什么.
我想看看每个应用的差异.
或者,为了获得相同的信息,我可以看到:
master现在featurebranch现在我怎么能看到这个?
我有一堆阶段性和非阶段性的更改,我想快速切换到另一个分支然后切换回来.
所以我使用以下方式进行了更改:
$ 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存储库并添加了一个文本文件.这是100%用于学习目的.
我在文本文件中添加了"1"并将其提交给master.
从master创建一个新分支并附加"2".
最后,从master创建了一个分支并附加了"3".
您能解释一下这个或任何其他场景中可能发生的冲突吗?
这个问题和其他一些人讨论了如何在Mac上运行,但我无法在Windows上找到MS或Atlassian的文档,而无需尝试将其作为全局git设置.(我更喜欢在可能的情况下在IDE中更改内容.)
在SourceTree的"选项"对话框"差异"选项卡中使用"自定义"设置时,有哪些参数用于与VS-Code进行差异和合并?
我想知道所有工具如何知道哪些分支/提交被合并,直到我在提交中找到"合并"标头.
我的问题是:为什么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工具读取头能够得出"合并边"看到下面的图片.

我的问题再次相同,见上文.
我们有一个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 中有两个主要分支:master和dev.
我的分支结构如下所示:
B-->E-->F-->G (master branch)
B-->C-->D-->H-->I-->J-->K (dev branch)
Run Code Online (Sandbox Code Playgroud)
之前,我进行了合并,master并dev有一个共同的母公司B。
在提交E,F并G掌握的,我删除了一些文件(说foo和bar)不正确,而他们在提交仍然存在C起在dev分支。
结果,当我执行三向合并以加入G并K创建 commit 时L,L不再包含 foo 和 bar !Git 没有以任何方式通知我他们的失踪。
在我看来,由于E,F并G进行了简单的重播后提交C因此foo而bar都不见了。
Git 合并的这种行为对我来说很奇怪。因为我无法知道是否有人从另一个分支删除了一些文件。
我不应该至少在合并时收到有关任何冲突修改的通知吗?
1 <- 2 <- 5 (merge commit) <- master <- HEAD
\ /
3 <-- 4 <- dev
Run Code Online (Sandbox Code Playgroud)
2和4合并期间?如果我是对的,那么在什么情况下使用双向合并?