簡體   English   中英

如何獲取本地的git branch -a進行更新?

[英]How to get git branch -a on local to be updated?

我有一個過時的git索引。 我正在兩台機器上進行開發。 我在一台機器上刪除了幾乎所有帶有git push origin :testbranch遠程分支git push origin :testbranchgit branch -D testbranch 這很好用,當我發出git branch -a我得到了:

* master
remotes/origin/HEAD -> origin/master

然后,我來到另一台機器上並執行git pull ,它不會更新索引並打印出我在另一台機器上刪除的所有舊分支: git branch -a

* master
remotes/origin/add_area_to_locations
remotes/origin/captcha_test
remotes/origin/full_responsive
remotes/origin/master
remotes/origin/pony_responsive
remotes/origin/shu_responsive
remotes/origin/usmle_cart
remotes/origin/yorgo_responsive

因此,我四處搜尋,無法說出索引更新功能。 我嘗試了git update-index --really-refreshgit update-index --refresh但這似乎什么也沒做。 只是要仔細檢查遠程服務器上的內容,我重新克隆了該存儲庫,並確保該存儲庫沒有分支並且干凈了我想要的樣子。

但是問題仍然存在-如何更新我的本地索引,以便它能准確反映主數據庫回購中的內容? 我不想克隆存儲庫只是為了清理索引。

非常感謝!

您需要做:

git fetch -p

-p,-修剪

提取后,刪除遠程上不再存在的所有遠程跟蹤引用。 如果僅由於默認標簽自動跟隨或--tags選項而獲取標簽,則不對它們進行修剪。 但是,如果由於顯式refspec(在命令行或在遠程配置中,例如,如果使用--mirror選項克隆了遠程服務器)而獲取了標記,則也將對其進行修剪。

這意味着在獲取之后,它將刪除遠程上不再存在的所有遠程跟蹤分支。

git pull通常只提取要從中提取的分支,因此您必須分別提取每個分支。 如果只想更新遠程分支,則應使用git fetch 使用--prune選項(或簡稱為-p ),您可以使git fetch也擺脫從遠程刪除的所有遠程分支:

git fetch -p

這樣,將擺脫您從遠程刪除的所有分支。

最后,關於“索引”的使用:在Git中, 索引也稱為“臨時區域”。 在此處添加更改(使用git addgit rm類的命令),然后將其包含在下一個提交中。 您將更改添加到索引,以將暫存以進行下一次提交 (因此稱為“暫存區”)。 其中所有帶有“ index”的命令都可能引用此命令,而不是某些查找索引

暫無
暫無

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

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