作者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/m.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