我正与git
的团队合作,而我的本地未跟踪 production branch
缺少团队成员的代码行。
master
上的tracked
分支是remote/origin/master
,它会显示所有代码。
使用此命令,production
的本地checkedout
分支为remote/origin/production
git checkout production
完成development branch
之后我做了:
git checkout production
git merge development
我部署到服务器然后
git checkout master
git merge development
git merge production
git push origin master
后来我发现production branch
和服务器缺少一些代码行(master
没问题)
我认为这可能是因为远程分支不是tracked
而git checkout --track production
然后我发现git diff master..production
没有显示差异,但是分析生产分支我可以找到commit
相对于development
分支的合并:
git show b17832a
commit b17832ae656f1bd43ebf837934f16b7d1f6efa33
Merge: a9bd850 0873d56
Merge branch 'development'
在这里我可以找到删除的代码行
git diff a9bd850..0873d56 file.rb
diff --git a/file.rb
index e0d1d1b..2343d92 100644
--- a/file.rb
+++ b/file.rb
@@ -49,12 +49,6 @@ angular.module('sp').directive 'spPlayer', [
some text and below I can find
- my missing line of code
- is showing here
如何修复生产分支并推动变更?我对master的承诺已经被推到了遥控器上。
答案 0 :(得分:1)
你提到了:
后来我发现生产分支和服务器缺少一些代码行(虽然主人没问题)
使用production
更新本地master
,然后推送到远程production
(来源/制作)。
$ git checkout production
$ git merge master
$ git push origin production
更新remote master
(来源/主人)
$ git checkout master
$ git push origin master
N.B。实际上在OP的评论部分讨论了这个问题。