我工作的公司中的一个团队正在使用git遇到麻烦。
我不认为这是一个git bug或者什么,因为我从来没有遇到过这样的问题。我真的认为问题出在工作流程中。我认为可能是在dev2拉出后,sublime编辑器没有刷新file.txt,但这不是原因。
有人有类似的问题吗?
我的git版本是1.7.9.5 dev1是1.7.12.4 dev2是1.7.10.4
Dev1报告了一些拉合并代码但由于编辑器无法打开而失败。我从来没有听说过拉动后编辑提交消息,这导致我this post,这说明versopm 1.7.10+打开编辑器提供合并消息后拉动。 这会导致问题吗?
另外,dev1 git config是
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = false
[remote "origin"]
url = url
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[difftool "sourcetree"]
cmd = opendiff \"$LOCAL\" \"$REMOTE\"
path =
[mergetool "sourcetree"]
cmd = /Applications/SourceTree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\"
trustExitCode = true
提交哈希是与dev1 pull相关的所有哈希值导致的问题。 第一列是行数
git ld | nl | grep -e 9b95d03 -e 53d397d -e d6b221c -e fd73722 -e d4ae4c1 -e 2e4fe3b -e 63ac034 -e 7b20cd0 -e 81b6bf4 -e 087583c
4 9b95d03 | 4 hours ago | Merge branch 'master' of git:repo | [dev1] ######## pulls and bazinga! Line gone.
5 53d397d | 4 hours ago | fake msg | [dev1]
8 d6b221c | 5 hours ago | Merge branch 'master' of git:repo | [dev2]
9 fd73722 | 5 hours ago | fake msg | [dev1]
10 d4ae4c1 | 5 hours ago | fake msg | [dev2] ######### line removed. [dev2] sweares he wasn't working near that feature
16 2e4fe3b | 18 hours ago | Merge branch 'master' of git:repo | [dev2]
17 63ac034 | 18 hours ago | Merge branch 'master' of git:repo | [dev2]
18 7b20cd0 | 18 hours ago | add shadow | [dev1]
19 81b6bf4 | 18 hours ago | ajustes | [dev2]
20 087583c | 19 hours ago | add widget blog | [dev1] ######## line added
# git log --graph --ancestry-path 087583c..9b95d03 -- assets/styles/site.css
* commit 9b95d03ccbfbcc21269c703f07e30c4b03517d00
|\ Merge: fd73722 d6b221c
| | Author: Dev1
| | Date: Wed Jun 26 11:19:46 2013 -0300
| |
| | Merge branch 'master' of git:repo
| |
| * commit d6b221c96c227f7577f8322d77fe56537f1a86df
| |\ Merge: d4ae4c1 fd73722
| |/ Author: Dev2
|/| Date: Wed Jun 26 09:53:07 2013 -0300
| |
| | Merge branch 'master' of git:repo
| |
| * commit d4ae4c1c21ae1b904cf6609331459c0eca7bb774
| | Author: Dev2
| | Date: Wed Jun 26 09:51:04 2013 -0300
| |
| | acabamentos resp
| |
* | commit fd73722b1c5a9045e5de2e5fb5fc50334f66b75a
| | Author: Dev1
| | Date: Wed Jun 26 09:51:25 2013 -0300
| |
| | fix menu sabotado
| |
* | commit 787b77d2e513c9358be0d077ad37860d244c1373
| | Author: Dev1
| | Date: Wed Jun 26 09:39:32 2013 -0300
| |
| | devolucao de código sabotado
| |
* | commit cfa4b113d668a12ee784a13dc488887c7a7a59c5
| | Author: Dev1
| | Date: Tue Jun 25 21:01:45 2013 -0300
| |
| | fix menus
| |
* | commit 8037155ae0ae0089bc589a4fc7071fba825546c5
| | Author: Dev1
| | Date: Tue Jun 25 20:45:41 2013 -0300
| |
| | acabamentos fix
| |
* | commit 64459bb5dc0284ea103c739464798f0da0e704a9
|\ \ Merge: af2f520 2e4fe3b
| |/ Author: Dev1
| | Date: Tue Jun 25 20:38:24 2013 -0300
| |
| | Merge branch 'master' of git:repo
| |
| * commit 2e4fe3b5a8f7efe2d6f3b15403e964134c888c7b
| |\ Merge: 63ac034 7b20cd0
| | | Author: Dev2
| | | Date: Tue Jun 25 20:31:51 2013 -0300
| | |
| | | Merge branch 'master' of git:repo
| | |
| * | commit 63ac0340faabc9defe4a45f65aeccaf3e5aba8b9
| / Merge: 81b6bf4 087583c
| | Author: Dev2
| | Date: Tue Jun 25 20:30:57 2013 -0300
| |
| | Merge branch 'master' of git:repo
| |
* | commit af2f5200269e2f3fa22ec911a14149357a8e3810
|/ Author: Dev1
| Date: Tue Jun 25 20:38:18 2013 -0300
|
| fix
|
* commit 7b20cd0b44fddc6b594546f6d75049d1c4522119
Author: Dev1
Date: Tue Jun 25 20:30:54 2013 -0300
add shadow
答案 0 :(得分:0)
你描述它的方式是不可能发生的。
如果第3步真的可能会发生:
正如在文本的长未读部分中所说的那样 - dev1的提交被发送到遗忘。
但是,从历史来看,这一点必须是明显的,如果实际上有一个拉动,你必须看到一个“公共汽车站”并且两个都提交。
如果您看到它并且内容确实消失了,您必须在合并提交中看到恢复。它可能发生在文本编辑器工件,文件被更改,编辑询问tyo重新加载,告诉NO,然后最终保存旧版本。
如果合并在没有冲突的情况下自动进行,那么仍然不清楚它是如何在提交中管理的,但是对于一次投机运行来说有足够的谜团。 :)
答案 1 :(得分:0)
(反思编辑)
最后一个信息很有用,但是指示错过开始的确有助于。 让我挑选出可能的观点:
提交2e4fe3b5 D2 提交64459bb D1 提交d6b221c D2 提交9b95d03 D1
Edit3似乎表明在d6b221c处仍然存在变化。如果是这样,你必须在diff d6b221c..9b95d03中看到恢复效果,Dev1是“责怪”。 (否则提供遗漏的信息)
在这种情况下,我通常会测试重做合并(或任何操作)的工具。 如果确认了9b95d03,则意味着在其父节点上创建临时分支并请求合并,然后查看会发生什么。
作为一个更一般的说明,你们成功地在一天内创造了令人难以置信的历史混乱。我认真建议你改变战术。即使遇到没有问题的合并,我也会这么做。
您的历史应该看起来完全线性。只需停止加密git pull
,然后切换到git pull --rebase
和主要工作方式。至少在没有冲突的时候。特别是如果您通常在完成后正确推送补丁。 (5小时合并12小时表明)