Q:
同事請(qǐng)你幫他做一些調(diào)整老翘,但你并不想在本地由你提交服務(wù)器撇簿,而是想打成patch發(fā)給同事惋砂,讓他完全整個(gè)步驟后總體提交(走commit--format patch--reset步驟要對(duì)本地倉(cāng)庫(kù)進(jìn)行修改和還原鞠绰,一不小心就有可能污染遠(yuǎn)程倉(cāng)庫(kù))困檩。相對(duì)簡(jiǎn)潔的操作方式是什么祠挫?
問(wèn)題本質(zhì):
- 不經(jīng)過(guò)commit和reset,將工作區(qū)修改打成patch
A:
git bash
git diff > xxx.patch
or
git add Not Versioned Files
git stash save
Format Patch...
Q:
想要stash的一些修改內(nèi)容中有新增文件悼沿,stash save時(shí)默認(rèn)不會(huì)加入這些文件等舔,用include untracked選項(xiàng)又會(huì)保存很多應(yīng)該被忽略的文件,如何只保存想保存的文件而又不漏掉新增文件糟趾?
問(wèn)題本質(zhì):
- 避免使用include untracked參數(shù)來(lái)stash指定內(nèi)容
A:
用Add選項(xiàng)將Not Versioned Files加入暫存區(qū)
git stash save
Q:
你在某一時(shí)期多次使用stash來(lái)保存一些功能未全部完成的修改記錄慌植,這些修改記錄中的內(nèi)容大部分是重復(fù)的,但是每一個(gè)修改記錄又有可能有比較重要的工作片段义郑。時(shí)間越長(zhǎng)蝶柿,你越有可能忘記具體的修改內(nèi)容,你需要把這些重要的片段都提取到主分支里非驮,該如何操作直至對(duì)stash list完成清理交汤?
問(wèn)題本質(zhì):
- 清理stash記錄
A:
stash list
cherry pick this commit
compare with working tree
pick to working tree
重復(fù)以上操作
Q:
工作過(guò)程中比較隨性的看到需要重構(gòu)的內(nèi)容就先改為敬,如此多次以后劫笙,卻因?yàn)橛械墓δ芏虝r(shí)間難以完成而無(wú)法總體提交芙扎,如何把無(wú)bug的單元功能修改提取出來(lái)分部提交星岗,最后再把未完成的功能修改stash?
問(wèn)題本質(zhì):
- 將一次量很大的修改或提交分解成為若干次獨(dú)立的事務(wù)提交
A:
reset branch to this
stash save
stash list
cherry pick this commit
compare with working tree
pick to working tree
commit
cherry pick this commit
compare with working tree
pick to working tree
commit
cherry pick this commit
compare with working tree
pick to working tree
commit