2014-05-02 63 views

回答

3

和Git一樣(幾乎)其他所有東西,這個命令只會修改你的本地倉庫。就像您提交或添加標籤時一樣,您必須推送到BitBucket才能使更改顯示出來。

但是在你做之前,要確定你想要的。

您運行的filter-branch命令重寫了您的歷史記錄。您的每個提交現在都有一個新的散列。這是considered bad practice to rewrite history that has been shared with others,如果你推到BitBucket你會這樣做。

這可能會導致真正的問題,最顯然的是因爲任何其他已經克隆存儲庫的人現在的歷史記錄將不再反映存儲庫中。他們將遇到問題push ing和fetch ing(或pull ing)。如果您選擇繼續前進,最好謹慎並誠實地與您的所有合作者溝通。

如果您是非常非常確定您想要這樣做,您必須使用--force選項來推送,否則BitBucket會拒絕推送。

+1

請參閱[this](http://stackoverflow.com/a/30373772/1459926)解決方案,以便在不改寫歷史記錄的情況下更改Git中的作者。 –

+0

@AlexandruGuzinschi,很好的解決方案! – Chris

1
  1. git filter-branch重寫你的歷史。如果您與其他人共享您的存儲庫,這可能會導致問題,所以要小心!
  2. 確保已將filter-branch操作的結果推送到遠程存儲庫。既然你已經搞砸了歷史提交,你可能需要使用git push -fgit push(沒有-f)會注意到你的本地和遠程分支已經發生分歧,這是因爲你已經改寫了你的歷史。再次,在使用git push -f之前要小心!
  3. 像Bitbucket和GitHub這樣的站點嘗試將提交鏈接到用戶,而不是簡單地顯示提交者的名稱。這是通過將提交者的電子郵件地址與與其中一個用戶相關聯的電子郵件地址進行匹配來完成的。如果您希望Bitbucket顯示您的用戶個人資料的鏈接,請確保您已將新的電子郵件地址添加到您的帳戶。爲此,請點擊網站右上角的個人資料照片,點擊「管理帳戶」,然後點擊左側欄中的「電子郵件地址」。
0
First of all create two different account into bitbucket 
    User: jonny_ceg1 
    User: jonny_ceg2 

    Now into your computer create two ssh keys; 
    $ ssh-keygen -t rsa -C 「jonny_ceg1/jonny_ceg2″ 
    # Creates a new ssh key, using the provided email as a label 
    # Generating public/private rsa key pair. 
    # Enter file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter] 
    $ ssh-add id_rsa 

    Now create a file 
    $ ~/.ssh/config 

    $ vim ~/.ssh/config # we can use this as editor 

    Write following code into that file 
    # Default GitHub user (jonny1) 
    Host bitbucket.org 
    HostName bitbucket.org 
    User jonny_ceg1 
    IdentityFile /Users/jonny/.ssh/id_rsa 

    # Client user (jonny2) 
    Host bitbucket.org 
    HostName bitbucket.org 
    User jonny_ceg12 
    IdentityFile /Users/jonny/.ssh/id_rsa2 

    by using 「IdentityFile」: IdentityFile comment only a single line to avoid jonny_ceg1/jonny_ceg2 as a user 


# An Example 

## use account 1 
# ssh-add ~/.ssh/id_rsa 

## use account 2 
# ssh-add ~/.ssh/yysshkey 

## Check logged in user 
# ssh -v [email protected] 

# Default GitHub user (jonny) 
Host bitbucket.org 
    HostName bitbucket.org 
    User jonny_oct 
IdentityFile /Users/name/.ssh/id_rsa 

# Client user (name) 
Host bitbucket.org 
    HostName bitbucket.org 
    User name_last 
# IdentityFile /Users/name/.ssh/yysshkey 

# Original Git hub 
Host github.org 
    HostName github.org 
    User ssUsers 
    ForwardAgent yes