如果我在一个本地分支上,从远程分支拉取,然后尝试切换到另一个分支,它会告诉我首先提交或隐藏更改。我认为当我进行拉取时,我会从远程分支获得所有新提交,并且我的本地分支将与远程分支保持最新状态。如果我在这次拉取之后进行额外的提交,我唯一要添加的新信息是我已经完成了pull操作。我可以直接pull操作而不需要添加提交消息吗?
sbtkgmzw1#
Git不会在从远程拉取后立即提示你提交/隐藏。因此,我更喜欢默认设置为stash + pull --rebase(Git 2.6+)
stash
pull --rebase
git config --global pull.rebase true git config --global rebase.autoStash true
这样,一个简单的git pull将在刷新后的origin/myCurrentBranch上重放(重定基)我的本地提交(尚未推送的提交),确保我的本地工作不会被覆盖。任何正在进行的工作首先会自动隐藏,然后在变基后恢复。此外,如果我有“未提交”的工作(本地修改尚未添加到索引并提交),“autostash”部分确保正在进行的工作在拉取之前保存,并在拉取之后重新应用。
git pull
origin/myCurrentBranch
qhhrdooz2#
我强烈prefer做什么VonC建议更明确,没有任何具体的配置:
git commit -am "==== before pull ====" # Temporary commit git pull --rebase git reset HEAD^ # Undo temporary commit
如果发生冲突,use KDiff3解决它们。
2条答案
按热度按时间sbtkgmzw1#
Git不会在从远程拉取后立即提示你提交/隐藏。
因此,我更喜欢默认设置为
stash
+pull --rebase
(Git 2.6+)这样,一个简单的
git pull
将在刷新后的origin/myCurrentBranch
上重放(重定基)我的本地提交(尚未推送的提交),确保我的本地工作不会被覆盖。任何正在进行的工作首先会自动隐藏,然后在变基后恢复。
此外,如果我有“未提交”的工作(本地修改尚未添加到索引并提交),“autostash”部分确保正在进行的工作在拉取之前保存,并在拉取之后重新应用。
qhhrdooz2#
我强烈prefer做什么VonC建议更明确,没有任何具体的配置:
如果发生冲突,use KDiff3解决它们。