git-filter-branch

    0熱度

    1回答

    我有一個很大的git回購,我想將其拆分爲2.我能夠使用「git filter-branch」或「git subtree split」來做到這一點,但兩種方法都是創建全新的提交ID(SHA)。我知道我們正在重寫歷史,它會改變提交id。 但是我的需求需要在分割回購後有相同的提交id。可能嗎? 例子: 有一個混帳回購富-bar.git下面提交 *foo-bar.git* 1fd3dsg refs #1

    6熱度

    2回答

    我想合併多個Git倉庫(讓我們說repoA和repoB)到一個新的倉庫。新的存儲庫(repoNew)應該在一個單獨的子目錄中包含每個repoA和repoB。由於我到現在爲止只在本地工作,我可以做任何我想要的存儲庫。 在這些情況下,標準方法似乎是使用git filter-branch來重寫每個repoA和repoB的歷史記錄,使其看起來好像它們一直位於子文件夾中,然後將它們合併到repoNew中。

    1熱度

    1回答

    如何我不能爲我所有提交的歷史,但並具體commiter更改名稱和電子郵件.. 類似,的foreach allcommits如果committer_name =「雨果卡薩「 變化: committer_name committer_email AUTHOR_NAME AUTHOR_EMAIL ,並做到這一點, 推並刷新歷史數據之後。 請helppp我搜索,發現這個: git filter-branc

    2熱度

    2回答

    我們有一個相當龐大的代碼庫,包含大約60000個提交。我們希望在保留git歷史的同時重新格式化所有的.java文件。因此,我們採用的方法是使用git filter-branch --tree-filter重新格式化整個代碼庫,同時保持歷史記錄不變。但是,有幾個問題我無法找到答案。 當我應用--tree過濾器,並通過重新格式化所有.java文件的根目錄下,重寫發生的命令,但在最後,我看到的所有.ja

    0熱度

    1回答

    如何我通常着手: 實際上,刪除一些文件,從完整的歷史,我使用下面的腳本(我稱之爲混帳緊縮): #!/bin/bash # # git crunch <filenames> # git filter-branch --index-filter "git rm --cached --ignore-unmatch $*" rm -rf .git/refs/original/ git refl

    0熱度

    3回答

    我必須在git回購中應用過濾器分支,出於某種原因,似乎已經與舊散列合併,導致樹爲每個文件看起來像這樣: -. .--A--B--C-....-X--Y--Z \--A'-B'-C'-...-X' 與一個素數的承諾字母是對應的字母重複,只是與不同的SHA1哈希。 過濾分支應用後已經提交,這使得它很難重做過濾器分支(圖中的Y,Z),所以我的問題是,有沒有辦法刪除重複的提交? 編輯:更新了

    2熱度

    3回答

    我已經將一個大的SVN存儲庫遷移到GIT,並且有相同作者的相同消息的連續提交大量。 現在我想自動修改提交到一個單一的提交。 想法?

    4熱度

    3回答

    我之前被問及#git的這個問題,但由於其合理實質性,我將在此處發佈它。我想在回購庫上運行filter-branch,以使用python腳本通過數百次提交修改(數千個)文件。我在回購目錄使用以下命令調用clean.py腳本: git filter-branch -f --tree-filter '(cd ../cleaner/ && python clean.py --path=files/*/*/

    2熱度

    1回答

    我想在某個日期的所有承諾執行命令: git filter-branch -f --tree-filter <command> HEAD -- --since="2014-06-01 13:37" <name-of-branch> 不幸的是,總是輸出Found nothing to rewrite並停止。一切後--應該作爲一個選項被處理rev-list所以,如果我嘗試: git rev-list -

    9熱度

    1回答

    我最近需要使用'git am'將16個補丁應用到我的回購庫中,並且我非常小心地爲每個補丁使用'--committer-date-is-author-date'。但是,我還需要調整每個amd補丁的提交消息,並且 - 在完成所有16個補丁後 - 我發現'commit --amend'碰撞每個補丁的時間戳。 我最終學會了我的問題可能一舉得到解決與 git rebase --committer-date-