作者Arbin (路人_Lv菜逼八)
看板Programming
标题[问题] git追加同内容不同档名到近期的commit
时间Sat Feb 24 18:33:59 2018
最近在学git 练习教学网站的状况题
状况是「追加档案到最近一次的commit」
最近一次的commit 是把hello.html更名成world.html (空档案)
然而我又新增一个档案叫做123.html 也是没内容的空档案
下了add 123.html并且commit --amend之後
跑出来的结果是:
[master abc41d8] change name (hello.html -> world.html)
Date: Sat Feb 24 17:48:29 2018 +0800
2 files changed, 0 insertions(+), 0 deletions(-)
rename hello.html => 123.html (100%)
create mode 100644 world.html
虽然都是空档案觉得git这样搞好像也没差
不过看怎麽会是把先把hello.html重新命名成123.html
并且再创了一个world.html档案啊...(汗
不该是 保留先前的操作(hello.html重新命名成world.html)
在这後面新增一个新增档案的动作(create mode 123.html之类的)
这样吗?
还是其实这是一种随机事件 也有机会跑成我上面所说的状况...(咦?
虽然纠结这种状况好像没啥意义啦XD
不过还是很好奇到底为什麽是这样跑
希望知道的大大可以替我解除疑惑 小弟感激不尽 m(_ _)m
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.235.6.15
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Programming/M.1519468457.A.6CC.html
1F:推 LPH66: git 不会知道你实际上做了什麽动作123.195.9.46 02/24 18:38
2F:→ LPH66: 它只看到你 commit 时的结果123.195.9.46 02/24 18:38
3F:→ LPH66: 所以它会从那里推测你到底做了什麽事情123.195.9.46 02/24 18:39
原来如此...看来是git推测成这个样子了orz
谢谢回复:D
※ 编辑: Arbin (36.235.6.15), 02/24/2018 18:46:26
4F:→ descent: 你用什麽指令重新命名?115.82.196.146 02/24 22:48
用git mv重新命名的
5F:推 alan23273850: Good question 卡一个123.193.38.80 02/24 23:29
6F:推 dannypsnl: 我实验之後结果是跟档案的排序有关,排218.164.45.223 02/25 03:14
7F:→ dannypsnl: 在前面的档案会先拿去填rename的空缺,218.164.45.223 02/25 03:14
8F:→ dannypsnl: 然後才是新增的空缺,当然只有空档案会218.164.45.223 02/25 03:14
9F:→ dannypsnl: 这样218.164.45.223 02/25 03:14
所以只能说git在无法判断实际上做什麽动作
且又是空档案的情况下
做档名排序->补空->再新增吗@@?!
先感谢上面大大们的回答
※ 编辑: Arbin (36.235.6.15), 02/25/2018 05:35:28
10F:→ MOONRAKER: 你不用猜git里面怎麽帮你做的218.161.46.90 02/25 11:52
11F:→ MOONRAKER: 反正都是没内容档案 他爱怎麽做都没差218.161.46.90 02/25 11:53
确实是怎麽做都没差...XD
※ 编辑: Arbin (36.235.6.15), 02/25/2018 14:30:43
12F:→ MOONRAKER: 如果你附加档案有内容就不会这样。220.135.118.23 02/25 16:59
13F:→ MOONRAKER: 就像SQL select你不声明排序他不一定会220.135.118.23 02/25 17:01
14F:→ MOONRAKER: 照你塞进去的顺序给你 有也是恰好220.135.118.23 02/25 17:01
有内容的话git会判断这个我是知道的w
所以这样讲起来很像随机事件一样耶 反正最终结果都一样我就...(ry
※ 编辑: Arbin (36.235.6.15), 02/25/2018 18:11:05
15F:推 alan23273850: 不如给 git 贡献个 pull request?!123.193.38.80 02/25 20:51
pull request是提交修正用的吧
我的C的能力只有两光程度Orz
看有没有其他大大要提 (?)
16F:→ dannypsnl: 按照git的判定方式,它好像也没办法完218.164.45.223 02/25 23:28
17F:→ dannypsnl: 美解决这个问题吧,除非它去看系统操作218.164.45.223 02/25 23:28
18F:→ dannypsnl: 纪录?(可以这样吗,我不确定)218.164.45.223 02/25 23:28
看教学网站只有说他是判别内容
操作部分 照上面讨论下来应该就不是判断依据了@@
系统操作我也不清楚可不可以看到更详细的内容...
※ 编辑: Arbin (111.83.222.103), 02/26/2018 12:48:17
19F:→ adrianshum: 说没差也不一定。要是你要把这branch49.130.129.21 02/27 08:57
20F:→ adrianshum: rebase ,而目的地有一已修改过的hel 49.130.129.21 02/27 08:57
21F:→ adrianshum: lo.html , 不肯定git 会怎麽处理了 49.130.129.21 02/27 08:57
rebase目前还没学到相关章节 所以还不清楚@@
22F:推 expury: git 新手问一个: 假如共写一份档案,是不223.139.225.63 02/27 11:29
23F:→ expury: 是每次传新版的步骤: 本机档 commit -> g223.139.225.63 02/27 11:29
24F:→ expury: it rebase -> git push -> git pull223.139.225.63 02/27 11:29
我卡一个(其实是还没学到那里xd
※ 编辑: Arbin (42.76.204.55), 02/27/2018 14:20:33
25F:→ MOONRAKER: 没事rebase干嘛 有commit洁癖吗 220.135.118.23 02/27 15:13
26F:→ MOONRAKER: 过度的学习是有害身心的 220.135.118.23 02/27 15:14
27F:推 Bencrie: commit, pull --rebase, push 1.160.117.224 02/27 20:09
28F:→ Bencrie: 共同开发还玩 rebase + push 是在害人吧 1.160.117.224 02/27 20:10
29F:→ Arbin: 嗯...看来rebase不能乱用 那这块我还是浅 61.223.107.208 02/28 02:40
30F:→ Arbin: 学好惹 61.223.107.208 02/28 02:40
31F:→ MOONRAKER: git的意义是在用 不是整套git学起来再 218.161.46.90 02/28 13:46
32F:→ MOONRAKER: 出去玩 那样意义不大 学简单够用就好 218.161.46.90 02/28 13:47
33F:→ MOONRAKER: 没有pull就push也会吃警告 叫你先pull 218.161.46.90 02/28 13:49
34F:→ Arbin: 好的..明白了 61.223.107.208 02/28 14:51
35F:→ MOONRAKER: 有些公司会要求使用rebase或squash 218.161.46.90 02/28 17:08
36F:→ MOONRAKER: 整理近端过多的commit再一次push 218.161.46.90 02/28 17:08
37F:→ MOONRAKER: 但除非规定 一般开发流程根本不需要 218.161.46.90 02/28 17:09
原来如此 (笔记
※ 编辑: Arbin (61.223.107.208), 02/28/2018 22:23:11
38F:推 holishing: 感觉如果在只有自己会动的 branch 还没 140.116.101.37 03/02 02:56
39F:→ holishing: merge 回 master 前也可以先 rebase 140.116.101.37 03/02 02:56
40F:→ holishing: 整理一下再并进去@@ 140.116.101.37 03/02 02:56
41F:→ holishing: 或是 pr 别人的专案前会应要求 rebase 140.116.101.37 03/02 02:57
42F:推 adrianshum: 只有自己用的Git repo 不rebase 当然 49.130.129.81 03/02 03:04
43F:→ adrianshum: 也没什麽差,当一team 十几个人各自在 49.130.129.81 03/02 03:04
44F:→ adrianshum: 不同位置branch 出来又在不同时候merg 49.130.129.81 03/02 03:04
45F:→ adrianshum: e,你要看history 就头痛了。 49.130.129.81 03/02 03:04