2011-08-28 38 views
7

我最近在GitHub上打開了一個回購協議。我是Git的新手。和往常一樣,我使用默認名稱和電子郵件,這是我最好的小白傳統,發現了五次提交太遲。現在樂趣開始了,因爲我開始搜索如何更改作者&這些提交的提交者名稱的信息。精細。我發現基本上下面的信息和大量的副本:更改之前提交的作者姓名:快進推送被拒絕

  1. http://help.github.com/change-author-info/

  2. Delete commits from a branch in Git

  3. How to remove selected commit log entries from a Git repository while keeping their changes?

  4. Change the author and committer name and e-mail of multiple commits in Git

  5. Change commit author at one specific commit

  6. Change first commit of project with Git?

  7. Could I change my name and surname in all previous commits?

的問題似乎並沒有不尋常的。我只能說沒有任何解決方案奏效。其中一半是相同的git filter-branch -f --env-filter腳本的變體。我試圖多次處理該腳本。問題是,在應用腳本後,我無法推送。 「快進推送拒絕」或類似的東西。好,唯一的辦法就是拉。拉出後,所有舊信息再次出現+新信息的新分支。我已經坐在這裏有四個分支,以最令人震驚的方式合併,所有這些分支都包含與不同作者姓名相同的信息,包括我想刪除的信息。

好的可以縮短它,我也嘗試刪除選擇的提交,它會產生我無法解決的毛病衝突(怎麼辦?),並且用正確的方式壓縮一些提交到新的提交作者信息,導致當前項目狀態被破壞。更好的是,在執行git rebase -i後我有時會遇到分段錯誤,我在此通知:http://lists-archives.org/git/729800-rebase-i-segmentation-fault-and-another-problem.html完全符合邏輯。唯一(幸運的)工作是git rebase --abort,它多次拯救了我的屁股。

我希望我的挫敗感不會排斥,反而會激起你,激勵你去幫助我。我想:

  • 要刪除筆者說最後的信息

  • 獎勵:爲了擺脫包含同一內容的所有分支。

但我很樂意與第一個也是如此,如果刪除以前的分支機構不破壞當前狀態的障礙是吃不消的git新人。提前致謝。

+0

重複的[什麼是「快進」 Git中的價值? ](http://stackoverflow.com/questions/4684352/whats-a-fast-forward-in-git) – 2014-05-18 16:58:21

+0

這是如何重複?這個問題的答案在某些方面是相關的,並不意味着問題是相同的,而是不同的措詞。 – Hinton

+0

我認爲這是重複的。這些解決方案不僅基本相同,例如強制推送,而且在成功重寫歷史記錄之後,這似乎是您唯一的問題。如果有人不同意,他們不能重新打開你的問題。 – 2014-05-19 16:38:20

回答

5

問題是,應用腳本後,我無法推送。 「快進推送拒絕」或類似的東西。

如果您嘗試修改歷史記錄,則無法避免此問題。Git拒絕推送,因爲它會導致數據丟失;在這種情況下,數據是舊的作者。你只需要git push--force標誌告訴它你確定你在做什麼。

Git中的混亂可能是一個需要解決的難題。如果master是一團糟,我通常會回到git checkout HEAD~的歷史記錄,直到我回到事情並不糟糕的時候。然後我git branch --force master重置master到那一點。最後,我用git branch -D badBranch刪除了所有凌亂的分支。

要小心。

+0

確定 - 只要最終刪除了作者姓名即可。你也許還有一條關於如何去除我意外創建的所有這些分支的線索? – Hinton

+0

此外,請確保告訴每個人他們需要「重新提取」回購。 – Andy

+0

@Andi這是一個「準私人」回購協議(意味着我是唯一的提交者^^)......無論如何,我不會在另一個案例中做到這一點。 – Hinton

1

如果沒有人還沒有跟隨您的回購,那麼只需修改您本地回購並強制推送到GitHub。接受任何尷尬。我已經(重新)以類似的方式建立一個數周的回購協議。

它,如果它是一個學生項目更加棘手和講師已經把它 - 只是爲了讓你欣賞的好管理者;-)