git 是一種分布式版本控制系統(tǒng),它非常適合團隊協(xié)作或個人開發(fā)者來管理代碼的修改歷史。在開發(fā)中,經常會出現一種情況:需要將部分修改加入到提交中,而不是全部提交,這時就需要使用 git 提交部分修改的功能了。
Git 提交部分修改的方式有兩種:一種是使用 Git add 命令的交互式模式,另一種是使用 Git stash 命令。
使用 Git add 命令的交互式模式
Git add 命令用于將工作區(qū)中的修改添加到暫存區(qū)。交互式模式允許我們選擇要添加的修改,而不是將所有修改一次性添加到暫存區(qū)。使用方法如下:
git add -i
執(zhí)行上述命令后,會進入交互式模式。以下是幾個常用的命令:
- p:逐個補丁地添加文件的修改;
- s:逐個補丁地添加文件的修改,并將與暫存區(qū)不同的修改放入暫存區(qū);
- q:退出交互式模式。
以添加修改文件 example.py 中的一部分為例,執(zhí)行以下命令:
git add -i example.py
然后選擇 p,接著 Git 會顯示修改的差異,讓我們分別選擇要添加的修改和不添加的修改。選擇完成后,使用 q 命令退出交互式模式。此時,只有選擇的修改被添加到暫存區(qū),其余的修改仍然留在工作區(qū)中。
使用 Git stash 命令
Git stash 命令用于保存當前的修改,將工作區(qū)和暫存區(qū)的修改全部存儲起來,并將工作區(qū)恢復到上一次提交的狀態(tài)。這種方式可以避免手工提交部分修改時出現的錯誤,也可以將現有的修改暫時放在一邊,方便我們去處理其他的事情。
使用 Git stash 命令的方法如下:
git stash
執(zhí)行上述命令后,Git 會將當前工作區(qū)和暫存區(qū)的修改全部存儲起來,并將工作區(qū)恢復到上一次提交的狀態(tài)。此時,我們就可以在不影響原本修改的情況下,進行其他的操作。
然后我們可以使用以下命令彈出(應用)存儲的修改:
git stash pop
此命令將之前存儲的修改應用到工作區(qū),并將其從存儲列表中刪除。如果需要多次執(zhí)行該操作,可以使用 git stash list 查看之前存儲的修改,并使用 git stash apply
總之,通過使用上述兩種方式的其中一種,我們就可以輕松地提交部分修改,而不必將所有的修改一次性提交。這樣可以大大提高我們的工作效率,并避免一些錯誤的提交。