我經常在我的桌面上作業,最終做出不值得提交的更改。然后我想切換到我的筆記本電腦并繼續我在桌面上停止的作業(包括所有未提交的更改)。我如何最好地用 git 做到這一點?
我幾乎,就像,想做一個臨時提交,拉那個,然后在本地和遠程撤消提交,就好像它從未發生過一樣。這是方法還是其他?我該怎么做?
uj5u.com熱心網友回復:
是的,您所描述的正是您需要做的。
Git 用“未提交的更改”做任何事情的概念根本沒有意義,因為提交是 Git 傳輸的唯一內容。因此,您必須提交才能進行傳輸。
因此,只需進行提交,給它一個有用的訊息,例如wip,然后推送。一旦你拉到另一臺機器上,如果你不想保留那個提交,你可以通過說“撤消”它作為一個提交
git reset @~1
...但請注意,如果您這樣做,那么稍后您將需要強制推動才能繼續。
也許更好的方法是創建一個臨時分支,因為它避免了強制推送:
git switch -c wip
git add .
git commit -m wip
git push
# and on the other machine
git fetch origin
git switch wip
git reset main # or wherever you were working when you created wip
git switch main # or wherever you were working
git branch -D wip
uj5u.com熱心網友回復:
您始終可以創建一個新提交并將其推送到(臨時)分支。正如馬特所指出的,您不應該在共享分支上執行此操作,并且您必須在推送后回退本地分支:
git commit -am 'temp work'
git push origin HEAD:refs/heads/temp
git reset HEAD^
至少倒帶部分可以用一個聰明的別名代替:
git config --global alias.pushtemp '!git add -u && git push origin $(git write-tree):refs/heads/temp'
然后打電話git pushtemp。注意。pushtemp別名強制推送到分支,覆寫遙控器上的temp任何不同內容。這樣很容易丟掉作業。洗掉 以進行正常推送。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/414042.html
標籤:
上一篇:git:兩個分支中哪些檔案已更改
