主頁 > 移動端開發 > 從未跟蹤的分支獲取更改的git分支

從未跟蹤的分支獲取更改的git分支

2022-11-09 07:17:11 移動端開發

因為我的回購git branch -vv回傳以下

  dev  5eed80e [origin/dev: behind 1] Create NeweestFileBaby
  dev2 9a50723 commiting first1 change
* main 8898177 [origin/main] Create NewDev

所以我在當地的main分店結賬

然后我在 github中的遠程dev分支中進行了更改,然后我做了一個實驗

git fetch

在這一點上,我不希望從遠程獲取更改,dev因為我的本地main分支設定為跟蹤遠程更改,main但出于某種原因,它確實從遠程獲取更改dev,我再次在本地簽出main

你能告訴我為什么會這樣嗎?

這很有趣,因為git push這種邏輯可以正常作業,因為我只能將 cahnges 從設定在各個遠程分支上游的各個本地分支推送到我各自的跟蹤分支。

uj5u.com熱心網友回復:

首先附注:“未跟蹤的分支”在這里是錯誤的短語。

Git 的術語不好,因為:

  • 動詞軌道適用于檔案:某個檔案是tracked還是untracked,取決于該檔案此時是否出現在 Git 的索引中;
  • 動詞track適用于分支名稱,因為B上游設定為的分支U被稱為track U

這兩個概念完全不同。第一個意味著被跟蹤的檔案將在下一次提交中(如果它當時仍然被跟蹤),而第二個意味著報告git status可從Band到達的不同提交,U并且如果是當前分支。git mergegit rebaseUB

在其他情況下,我們對這個問題很熟悉:例如,set這個詞,即使被視為一個名詞或一個動詞(“在餐桌上設定一個地方”),也有很多含義;當被視為形容詞時,它還有另一組。但至少對于 Git,曾經有人希望我們不必處理這種瘋狂。如果一個分支的上游只被稱為“上游”,我們不需要額外的track含義。但近 20 年過去了,我們仍然擁有這兩個術語。(當然,上游這個詞也有點問題,但我們現在不要去那里。)

git fetch但是這里和之間有兩個很大的不對稱性git push

這很有趣,因為git push邏輯型別可以正常作業,因為我只能將更改從各自的本地分支推送到各自的跟蹤分支,這些本地分支在上游設定到各自的遠程分支。

從技術上講,您推送提交(不是更改,因為提交是快照加上元資料),但是是的:git push,沒有額外的引數,告訴 Git:

  1. 找出你現在“在”哪個分支(如git status所說on branch main或其他);
  2. 使用此分支的上游設定來確定遠程(例如,origin)和該遠程上的分支名稱;
  3. 實際上,運行,假設設定為or git push remote branchpush.defaultsimplecurrent

請注意,使用push.defaultset to upstream,這里的效果是相反的,即分支可以在遠程上具有不同的名稱,但是使用and ,推送會在遠程上使用相同的名稱。設定為時此處的行為是 Git 版本 1 中的行為:等效于,尚未發現它非常有用,但為了向后兼容而保留。git push remote branch:reverse-map-of-upstreamsimplecurrentpush.defaultmatchinggit push remote :

但是,使用git fetch時,默認仍然使用第 1 步和第 2 步的一半:Git 將從當前分支找出正確的遠程(或使用硬編碼后備origin,如果失敗)。但在那之后,Git 使用設定(這是一個多值配置設定,因此可以列出多個條目)。這些提供了 refspec 引數,上面的-for - 是單個分支名稱或一對以冒號分隔的分支名稱,用于兩個推薦值(是非推薦值,并導致失敗)。remote.remote.fetchgit pushmatchingnothinggit push

此處默認值origin(如果您尚未設定)為:

 refs/heads/*:refs/remotes/origin/*

請注意此處的兩個“類似 glob 的”星號*字符。此 refspec 表示匹配遠程上的所有分支名稱,并將每個分支名稱復制到本地遠程跟蹤名稱因此,我們將git fetch 所有來自 的新提交origin帶入我們的本地存盤庫,然后我們更新所有遠程跟蹤名稱。refs/remotes/origin/whatever

效果是這git fetch意味著從 獲取所有分支origin,這正是您所看到的。遠程跟蹤名稱的更新由 refspec 暗示refs/heads/*:refs/remotes/origin/*(前導 設定“force”標志,因此即使操作不是快進操作,每個名稱也會更新)。

請注意,運行:

git fetch origin main

將限制git fetch操作,因此,盡管在originURL 串列中 Git 軟體有許多分支名稱,我們只帶來更新origin/main遠程跟蹤名稱所需的那些新提交。我們的 Git 軟體將這些新提交添加到我們的物件資料庫中。奇怪的是,盡管沒有冒號并且refs/remotes/origin/main——我們沒有運行——我們的git fetch origin main:refs/remotes/origin/mainGit 現在繼續更新我們的origin/main. 但為什么?

答案在于困擾著同樣的向后兼容性問題,git pushmatching意味著git push使用冒號 refspec。在這里不討論所有無聊的歷史,讓我們注意git fetch現在(從 Git 1.8.2 開始)“機會性地更新”遠程跟蹤名稱,如行中配置的那樣,無論您是否提供特定的 refspec。remote.remote.fetch

這里的底線是:

git fetch origin

從 獲取所有配置的提取分支origin并且“所有配置的提取分支”默認為“所有分支”。有一個--all標志git fetch,但它意味著所有遙控器:它對要獲取哪些分支沒有影響。然后,還有術語問題:我們實際上并沒有獲取分支我們取提交我們只是使用名稱找到要獲取的提交,這些名稱可能是分支名稱。這些是遠程上看到的分支名稱提交進入我們自己的本地 Git 物件資料庫,然后 Git 更新(或不更新)通過 refspec 引數指定的遠程跟蹤名稱。

未編號的腳注

refspec實際上是一對由冒號分隔的名稱:,并且可以選擇以加號作為前綴 名稱可以是分支名稱或標簽名稱(縮寫)或完全拼寫,例如,refs/heads/mainrefs/tags/v1.2在任何自動代碼中進行完整的拼寫都是明智的,因為 Git 嘗試將部分名稱與全名匹配可能會產生意外。冒號左邊的名字是,forgit push是本地的,forgit fetch是遠程的。冒號右邊的名字是destination,forgit push是remote,forgit fetch是local。如上所述,加號設定該--force特定參考的標志。Refspecs 可以使用 glob*以有限的方式;必須出現在*兩邊。匹配的限制*在某些時候得到了改進,例如, refs/heads/pr-*:refs/remotes/pr-*如果你愿意;在此*之前必須匹配“整個組件”部分(即,就在斜線之前或之后)。

我稱之為遠程跟蹤名稱origin/main或者,完全拼寫出來refs/remotes/origin/main),現代 Git 檔案稱為遠程跟蹤分支名稱這些不是分支名稱,因為分支名稱以refs/heads/.

對于從多個遙控器獲取,我建議使用git remote update而不是git fetch. 這部分是因為古代 Git 需要它,但我認為總體上代碼得到了更好的維護。

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/529835.html

標籤:混帐github

上一篇:React網站未托管在github上

下一篇:如何在DBT模型中參考表名(GitHub)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【從零開始擼一個App】Dagger2

    Dagger2是一個IOC框架,一般用于Android平臺,第一次接觸的朋友,一定會被搞得暈頭轉向。它延續了Java平臺Spring框架代碼碎片化,注解滿天飛的傳統。嘗試將各處代碼片段串聯起來,理清思緒,真不是件容易的事。更不用說還有各版本細微的差別。 與Spring不同的是,Spring是通過反射 ......

    uj5u.com 2020-09-10 06:57:59 more
  • Flutter Weekly Issue 66

    新聞 Flutter 季度調研結果分享 教程 Flutter+FaaS一體化任務編排的思考與設計 詳解Dart中如何通過注解生成代碼 GitHub 用對了嗎?Flutter 團隊分享如何管理大型開源專案 插件 flutter-bubble-tab-indicator A Flutter librar ......

    uj5u.com 2020-09-10 06:58:52 more
  • Proguard 常用規則

    介紹 Proguard 入口,如何查看輸出,如何使用 keep 設定入口以及使用實體,如何配置壓縮,混淆,校驗等規則。

    ......

    uj5u.com 2020-09-10 06:59:00 more
  • Android 開發技術周報 Issue#292

    新聞 Android即將獲得類AirDrop功能:可向附近設備快速分享檔案 谷歌為安卓檔案管理應用引入可安全隱藏資料的Safe Folder功能 Android TV新主界面將顯示電影、電視節目和應用推薦內容 泄露的Android檔案暗示了傳說中的谷歌Pixel 5a與折疊屏新機 谷歌發布Andro ......

    uj5u.com 2020-09-10 07:00:37 more
  • AutoFitTextureView Error inflating class

    報錯: Binary XML file line #0: Binary XML file line #0: Error inflating class xxx.AutoFitTextureView 解決: <com.example.testy2.AutoFitTextureView android: ......

    uj5u.com 2020-09-10 07:00:41 more
  • 根據Uri,Cursor沒有獲取到對應的屬性

    Android: 背景:呼叫攝像頭,拍攝視頻,指定保存的地址,但是回傳的Cursor檔案,只有名稱和大小的屬性,沒有其他諸如時長,連ID屬性都沒有 使用 cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATIO ......

    uj5u.com 2020-09-10 07:00:44 more
  • Android連載29-持久化技術

    一、持久化技術 我們平時所使用的APP產生的資料,在記憶體中都是瞬時的,會隨著斷電、關機等丟失資料,因此android系統采用了持久化技術,用于存盤這些“瞬時”資料 持久化技術包括:檔案存盤、SharedPreference存盤以及資料庫存盤,還有更復雜的SD卡記憶體儲。 二、檔案存盤 最基本存盤方式, ......

    uj5u.com 2020-09-10 07:00:47 more
  • Android Camera2Video整合到自己專案里

    背景: Android專案里呼叫攝像頭拍攝視頻,原本使用的 MediaStore.ACTION_VIDEO_CAPTURE, 后來因專案需要,改成了camera2 1.Camera2Video 官方demo有點問題,下載后,不能直接整合到專案 問題1.多次拍攝視頻崩潰 問題2.雙擊record按鈕, ......

    uj5u.com 2020-09-10 07:00:50 more
  • Android 開發技術周報 Issue#293

    新聞 谷歌為Android TV開發者提供多種新功能 Android 11將自動填表功能整合到鍵盤輸入建議中 谷歌宣布Android Auto即將支持更多的導航和數字停車應用 谷歌Pixel 5只有XL版本 搭載驍龍765G且將比Pixel 4更便宜 [圖]Wear OS將迎來重磅更新:應用啟動時間 ......

    uj5u.com 2020-09-10 07:01:38 more
  • 海豚星空掃碼投屏 Android 接收端 SDK 集成 六步驟

    掃碼投屏,開放網路,獨占設備,不需要額外下載軟體,微信掃碼,發現設備。支持標準DLNA協議,支持倍速播放。視頻,音頻,圖片投屏。好點意思。還支持自定義基于 DLNA 擴展的操作動作。好像要收費,沒體驗。 這里簡單記錄一下集成程序。 一 跟目錄的build.gradle添加私有mevan倉庫 mave ......

    uj5u.com 2020-09-10 07:01:43 more
最新发布
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:40:31 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:40:11 more
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:39:36 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:39:13 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:16:23 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:16:15 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:15:46 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:14:53 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:14:08 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:08:34 more