[英]git receive warning if pulling from different branch
如果我在分支“x”並嘗試從分支“y”拉出來,如何讓git向我發出警告?
舉個例子;
考慮我當前的本地工作分支是x,我發出:
git pull origin y
此時我希望git發出類似於“你正在獲取並將不同的分支合並到當前工作分支中的警告。你想繼續嗎?(是/否)”
這可能嗎? 可能有一些配置選項?
我知道如何恢復這個錯誤,但我寧願在做出這樣的錯誤之前得到警告。
在拉取請求之前無法停止git處理並接受用戶輸入。 我的意思是,它是可能的,但為此你必須對git進行一些更改並從源代碼構建它。 我不會走這條路。
在git hooks中使用條件語句有一個漂亮的小技巧。 您可以在git鈎子中使用Ruby(或任何其他語言)使其成為條件。 這在pre-commit
鈎子或在任何實際處理發生之前調用的鈎子中效果最佳。 在git pull
情況下,你可以鎖定的唯一鈎子是post-merge
鈎子,並且只有在整個處理完成后才會調用它。 因此,沒有必要真正詢問用戶是否要在合並分支后合並另一個分支,正確:)但是,您可以向他們顯示消息。
為此,請使用以下內容:
#!/usr/bin/env ruby
branch=$(git rev-parse --symbolic --abbrev-ref $1)
if branch != $GIT_DIR/ORIG_HEAD
puts "You merged a different branch dim wit"
end
現在,我要做的是比較合並的分支是否與原始分支名稱相同,如果沒有,則向用戶顯示一條消息。 這將在您的git合並摘要中顯示為remote
。
再次,我不確定這是否會起作用,因為我不確定git rev-parse --symbolic --abbrev-ref $1
會給你分支名稱。
這又是一個建議,而不是你的問題的解決方案:(
如果您的當前分支已設置為跟蹤上游分支 (如git branch --set-upstream test origin/test
),您只需:
git pull origin
(避免任何錯誤的可能性)
注意:根據您的git版本,這也將對您的推送操作產生影響:請參閱“ git checkout --track origin/branch
和git checkout -b branch origin/branch
” 之間的區別 。
所以要准確回答你的問題: 沒有內置的方法來通過git獲得警告 。
您可以對rizwaniqbal的回答 (upvoted)中推薦的鈎子腳本進行版本控制,但每個用戶都必須在他/她自己的回購中聲明該鈎子。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.