簡體   English   中英

如何使用 git 將未提交的更改從一台機器傳輸到另一台機器?

[英]How to use git to transfer uncommitted changes from one machine to another?

我經常在我的桌面上工作,最終做出不值得提交的更改。 然后我想切換到我的筆記本電腦並繼續我在桌面上停止的工作(包括所有未提交的更改)。 我如何最好地使用 git 做到這一點?

我幾乎,就像,想做一個臨時提交,拉那個,然后在本地和遠程撤消提交,就好像它從未發生過一樣。 這是方法還是其他? 我該怎么做?

是的,您所描述的正是您需要做的。

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

您始終可以創建一個新提交並將其推送到(臨時)分支。 正如馬特所指出的,您不應該在共享分支上執行此操作,並且您必須在推送后回退本地分支:

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分支,覆蓋遙控器上的任何不同內容。 這樣很容易丟掉工作。 刪除+進行正常推送。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM