2

我按照这里的说明创建了一个 git 子树 - https://help.github.com/articles/working-with-subtree-merge

也许不幸的是,我对包含子树的存储库进行了正常的 TortoiseGit 推送。出于某种原因,来自子树的更改文件列在 TortoiseGit 的更改列表中(它是合法更改的,顺便说一句),所以我想“哦!Neat!TortoiseGit 自动支持子树!”,所以我继续提交并做了一个普通的 TortoiseGit推。

然后为了测试 TortoiseGit 是否符合我的想法,我得到了子树所在存储库的克隆,并拉取了。可悲的是,我没有从我认为我推入 TortoiseGit 的子树中得到改变......

所以现在我不确定发生了什么,所以我求助于安装 git-subtree 并在子树上尝试 push 命令的不同变体,直到某些东西似乎起作用 -

git subtree push --prefix=prime origin/prime prime/master
git subtree push --prefix=prime prime prime/master
git subtree push --prefix=prime/ -u prime/master
git subtree push --prefix=prime/ prime/master
git subtree push --prefix=prime/ prime prime/master
git subtree push --prefix=prime/ https://github.com/bryanedds/prime.git prime/master
git subtree push --prefix=prime/ https://github.com/bryanedds/prime.git master

我应该比仅仅猜测更好,因为我认为其中一条线意外地推动了一个新分支或其他东西,现在可能导致与这个问题相关的问题......

尽管如此,我还是继续尝试按照我在网上其他地方找到的说明进行操作,以确保我做的一切正常——

git subtree pull -P prime https://github.com/bryanedds/prime.git master

这似乎奏效了。但是还是不确定我推送是否正确,我尝试根据我找到的新页面再次推送 - git subtree push -P prime https://github.com/bryanedds/prime.git master

它给了我各种带有拒绝错误的疯狂输出-

git push using:  https://github.com/bryanedds/prime.git master
1/    287 (0)2/    287 (1)3/    287 (2)4/    287 (3)5/    287 (4)6/    287 (5)7/
    287 (6)8/    287 (7)9/    287 (8)10/    287 (9)11/    287 (10)12/    287 (11
)13/    287 (12)14/    287 (13)15/    287 (14)16/    287 (15)17/    287 (16)18/
   287 (17)19/    287 (18)20/    287 (19)21/    287 (20)22/    287 (21)23/    28
7 (22)24/    287 (23)25/    287 (24)26/    287 (25)27/    287 (26)28/    287 (27
)29/    287 (28)30/    287 (29)31/    287 (30)32/    287 (31)33/    287 (32)34/
   287 (33)35/    287 (34)36/    287 (35)37/    287 (36)38/    287 (37)39/    28
7 (38)40/    287 (39)41/    287 (40)42/    287 (41)43/    287 (42)44/    287 (43
)45/    287 (44)46/    287 (45)47/    287 (46)48/    287 (47)49/    287 (48)50/
   287 (49)51/    287 (50)52/    287 (51)53/    287 (52)54/    287 (53)55/    28
7 (54)56/    287 (55)57/    287 (56)58/    287 (57)59/    287 (58)60/    287 (59
)61/    287 (60)62/    287 (61)63/    287 (62)64/    287 (63)65/    287 (64)66/
   287 (65)67/    287 (66)68/    287 (67)69/    287 (68)70/    287 (69)71/    28
7 (70)72/    287 (71)73/    287 (72)74/    287 (73)75/    287 (74)76/    287 (75
)77/    287 (76)78/    287 (77)79/    287 (78)80/    287 (79)81/    287 (80)82/
   287 (81)83/    287 (82)84/    287 (83)85/    287 (84)86/    287 (85)87/    28
7 (86)88/    287 (87)89/    287 (88)90/    287 (89)91/    287 (90)92/    287 (91
)93/    287 (92)94/    287 (93)95/    287 (94)96/    287 (95)97/    287 (96)98/
   287 (97)99/    287 (98)100/    287 (99)101/    287 (100)102/    287 (101)103/
    287 (102)104/    287 (103)105/    287 (104)106/    287 (105)107/    287 (106
)108/    287 (107)109/    287 (108)110/    287 (109)111/    287 (110)112/    287
 (111)113/    287 (112)114/    287 (113)115/    287 (114)116/    287 (115)117/
  287 (116)118/    287 (117)119/    287 (118)120/    287 (119)121/    287 (120)1
22/    287 (121)123/    287 (122)124/    287 (123)125/    287 (124)126/    287 (
125)127/    287 (126)128/    287 (127)129/    287 (128)130/    287 (129)131/
287 (130)132/    287 (131)133/    287 (132)134/    287 (133)135/    287 (134)136
/    287 (135)137/    287 (136)138/    287 (137)139/    287 (138)140/    287 (13
9)141/    287 (140)142/    287 (141)143/    287 (142)144/    287 (143)145/    28
7 (144)146/    287 (145)147/    287 (146)148/    287 (147)149/    287 (148)150/
   287 (149)151/    287 (150)152/    287 (151)153/    287 (152)154/    287 (153)
155/    287 (154)156/    287 (155)157/    287 (156)158/    287 (157)159/    287
(158)160/    287 (159)161/    287 (160)162/    287 (161)163/    287 (162)164/
 287 (163)165/    287 (164)166/    287 (165)167/    287 (166)168/    287 (167)16
9/    287 (168)170/    287 (169)171/    287 (170)172/    287 (171)173/    287 (1
72)174/    287 (173)175/    287 (174)176/    287 (175)177/    287 (176)178/    2
87 (177)179/    287 (178)180/    287 (179)181/    287 (180)182/    287 (181)183/
    287 (182)184/    287 (183)185/    287 (184)186/    287 (185)187/    287 (186
)188/    287 (187)189/    287 (188)190/    287 (189)191/    287 (190)192/    287
 (191)193/    287 (192)194/    287 (193)195/    287 (194)196/    287 (195)197/
  287 (196)198/    287 (197)199/    287 (198)200/    287 (199)201/    287 (200)2
02/    287 (201)203/    287 (202)204/    287 (203)205/    287 (204)206/    287 (
205)207/    287 (206)208/    287 (207)209/    287 (208)210/    287 (209)211/
287 (210)212/    287 (211)213/    287 (212)214/    287 (213)215/    287 (214)216
/    287 (215)217/    287 (216)218/    287 (217)219/    287 (218)220/    287 (21
9)221/    287 (220)222/    287 (221)223/    287 (222)224/    287 (223)225/    28
7 (224)226/    287 (225)227/    287 (226)228/    287 (227)229/    287 (228)230/
   287 (229)231/    287 (230)232/    287 (231)233/    287 (232)234/    287 (233)
235/    287 (234)236/    287 (235)237/    287 (236)238/    287 (237)239/    287
(238)240/    287 (239)241/    287 (240)242/    287 (241)243/    287 (242)244/
 287 (243)245/    287 (244)246/    287 (245)247/    287 (246)248/    287 (247)24
9/    287 (248)250/    287 (249)251/    287 (250)252/    287 (251)253/    287 (2
52)254/    287 (253)255/    287 (254)256/    287 (255)257/    287 (256)258/    2
87 (257)259/    287 (258)260/    287 (259)261/    287 (260)262/    287 (261)263/
    287 (262)264/    287 (263)265/    287 (264)266/    287 (265)267/    287 (266
)268/    287 (267)269/    287 (268)270/    287 (269)271/    287 (270)272/    287
 (271)273/    287 (272)274/    287 (273)275/    287 (274)276/    287 (275)277/
  287 (276)278/    287 (277)279/    287 (278)280/    287 (279)281/    287 (280)2
82/    287 (281)283/    287 (282)284/    287 (283)285/    287 (284)286/    287 (
285)287/    287 (286)Username for 'https://github.com': bryanedds
Password for 'https://bryanedds@github.com':
To https://github.com/bryanedds/prime.git
 ! [rejected]        f9376cdb70e9217ff005abedb3009e3db293f5dc -> master (non-fas
t-forward)
error: failed to push some refs to 'https://github.com/bryanedds/prime.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

我再次尝试拉动,但无济于事。另外,重要的是,所有数字、括号和斜杠是什么?我现在完全被卡住了,迷路了,笨手笨脚的可能是我的错,所以我真诚地感谢在这件事上的帮助!

最后,我可能在把自己挖进这个洞的时候做了其他坏事......我希望我有一个我所做的一切的日志,但 CMD 认为任何人都不需要知道超过他们的最后 50 行会话........ >:(

4

2 回答 2

4

您提供的链接是关于子树合并的,不要与命令混淆,该git subtree命令是 git 扩展的一部分。

如果您执行 agit branch并且您可以看到除父项目的prime分支之外的本地分支master,那么您可以执行

git subtree split --prefix=prime --onto prime --branch prime

然后推送到您的prime存储库

git push -f prime prime:master

如果您在本地看不到分支,那么您可以通过prime执行一个新的拆分git subtree

git subtree split --prefix=prime --branch prime

它将创建一个名为的新悬挂分支prime,可以跟踪您的远程prime存储库。要更新您的prime远程存储库,您可以执行以下任一操作

git push -f prime prime:master

于 2013-08-09T16:25:15.423 回答
0

尝试推送我在子树中所做的更改时,我遇到了同样的问题。我使用 git bash 完成了所有设置,但是在尝试将子树推送到我的遥控器时得到了相同类型的输出。

解决方案是将 git 更新到最新版本https://git-scm.com/downloads

之后,以下曾经失败的命令现在起作用了:

 git subtree push --prefix=DIR_PATH REMOTE_NAME master
于 2015-08-20T07:52:17.050 回答