簡體   English   中英

為什么 git pull origin master 創建合並提交

[英]Why git pull origin master creates a merge commit

我的遠程同事總是在沒有實際原因的情況下創建虛擬合並提交 - 它們包含非常相同的代碼,自他上次拉起以來已經推送到存儲庫。 我想防止這種情況發生,但無法真正弄清楚他是如何做到的 - 他說他唯一做的就是git pull origin master並且出於某種原因它將遠程代碼作為他自己的。 任何想法怎么會發生? 我想我會去tmate給他端來檢查自己。

git pull的默認行為是合並。

將遠程存儲庫中的更改合並到當前分支中。 在默認模式下, git pull 是 git fetch 后跟 git merge FETCH_HEAD 的簡寫。

https://git-scm.com/docs/git-pull

要更改它,您可以添加--rebase ( git pull --rebase ),或者簡單地將 git 配置為始終變基,如果這是您想要的默認行為。

將以下內容添加到您的.gitconfig

[pull] 
  rebase = true

或者從命令行配置它:

git config --global pull.rebase true

本地分支有一個或多個未推送並合並到遠程存儲庫中的分支的提交,同時遠程存儲庫中的分支有一個或多個未獲取並合並到遠程存儲庫中的提交當地分支機構。 2個分支是分叉的。

為了防止創建合並提交,將--rebase-r添加到git pull ,例如git pull origin -r master 這樣,遠程存儲庫中的分支將首先被獲取,然后本地分支上的新提交被重新基於獲取的頭部。 本地分支將始終與遠程存儲庫中的分支保持同步或領先於該分支。

暫無
暫無

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

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