簡體   English   中英

防止在git pull合並

[英]Prevent merge at git pull

有時,當我執行“ git pull origin BRANCH”時,偶然輸入了錯誤的分支名稱。
當XXX與我當前在本地存儲庫中檢查的分支不同時,是否可以禁止“ git pull origin XXX”? 即僅當本地檢查的分支是XXX而不是YYY時才允許“ git pull”。

也就是說,我確實希望“合並”發生變化,但是僅當我拉出當前在本地存儲庫中檢查過的同一分支時才可以。 有沒有一種方法可以將本地存儲庫配置為僅允許來自同一分支名稱的“ git pull”?

例如:情況1:
本地存儲庫上當前檢查的分支為“測試”

[* test ] /code$ git pull origin master

這會將代碼從“測試”分支合並到本地“ master”分支。 ==>我要禁止這樣做。

情況2:

本地存儲庫上當前檢查的分支是“ master”

[* master ] /code$ git pull origin master

這會將更改從遠程“ master”分支合並到本地“ master”分支。 ==>可以。

我希望我能很好地解釋我的問題。

提前致謝。

您應該使用git fetch

它執行以下操作

從遠程存儲庫中獲取本地對象中不存在的所有對象。

編輯:

'git pull'和'git fetch'有什么區別? "git pull does a git fetch followed by a git merge"

編輯2:

AFAIK,您不能禁止進入分支,因為它可以是本地名稱,並且可以隨時隨地使用。

但是您可以通過使用git pull --abort將項目更改為拉前的最后一次提交git pull --abort並沒有檢查它是否應該是這樣的。

您可以做的另一件事是在進行git pull之前git checkout到分支的SHA1。

請記住,您始終可以通過(不可逆)撤消所有操作:

git clean -fd
git reset HEAD --hard

使用git fetch不會合並代碼。 git pull實際上是兩個命令git fetchgit merge

不必太擔心,可以通過明智地使用git reset來消除混亂。 只要確保每次拉出存儲庫時都處於船形即可。

來自“ man git-pull”:

    git pull runs git fetch with the given parameters and calls git merge to
    merge the retrieved branch heads into the current branch.

從而,

    git fetch origin master

不執行自動合並。

您也可以:

    git fetch origin master:tmp 

從提取的master分支創建一個新的分支“ tmp”。
然后git merge FETCH_HEAD將向您顯示任何沖突。

這是你的意思嗎?

暫無
暫無

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

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