git push用法和常見問題分析

在使用git 處理對android的修改的過程之中總結的.但不完善android

 

Git pushgit

$ git push origin test:master         // 提交本地test分支做爲遠程的master分支服務器

$ git push origin test:test              // 提交本地test分支做爲遠程的test分支fetch

若是想刪除遠程的分支呢?相似於上面,若是:左邊的分支爲空,那麼將刪除:右邊的遠程的分支。this

 

$ git push origin :test              // 剛提交到遠程的test將被刪除,可是本地還會保存的,不用擔憂。命令行

舉個例子:rem

       git push origin  :origin/Android_HK_K501_77-W916 //因爲:前面爲空因此原本在服務器上面存在的分支origin/Android_HK_K501_77-W916和Android_HK_K501_77-W916如今就只有一個了,由於分支origin/Android_HK_K501_77-W916被刪除了,可是本地的還在it

 

常見錯誤:io

1.error:failed to push some refs to ...event

當要push代碼到git時,出現提示:

error:failed to push some refs to ...

Dealing with 「non-fast-forward」 errors

From time to time you may encounter this error while pushing:

$ git push origin master 

To ../remote/ 

 ! [rejected]        master -> master (non-fast forward) 

error: failed to push some refs to '../remote/' 

To prevent you from losing history, non-fast-forward updates were rejected

Merge the remote changes before pushing again.  See the 'non-fast forward'

section of 'git push --help' for details.

 

問題(Non-fast-forward)的出現緣由在於:git倉庫中已經有一部分代碼,因此它不容許你直接把你的代碼覆蓋上去。因而你有2個選擇方式:

 

強推,即利用強覆蓋方式用你本地的代碼替代git倉庫內的內容

git push -f

 

2. 先把git的東西fetch到你本地而後merge後再push

$ git fetch

$ git merge

這2句命令等價於

$ git pull 

但是,這時候又出現了以下的問題:

上面出現的 [branch "master"]是須要明確(.git/config)以下的內容

[branch "master"]

    remote = origin

    merge = refs/heads/master

這等於告訴git2件事:

1,當你處於master branch, 默認的remote就是origin。

2,當你在master branch上使用git pull時,沒有指定remote和branch,那麼git就會採用默認的remote(也就是origin)來merge在master branch上全部的改變

若是不想或者不會編輯config文件的話,能夠在bush上輸入以下命令行:

$ git config branch.master.remote origin 

$ git config branch.master.merge refs/heads/master 

以後再從新git pull下。最後git push你的代碼吧。

 

錯誤信息:error: object file .git/objects/c6/884991eaac39417e314faa6685061eab18909d is empty

fatal: loose object c6884991eaac39417e314faa6685061eab18909d (stored in .git/objects/c6/884991eaac39417e314faa6685061eab18909d) is corrupt

解決方法:

1  rm .git/objects/c6/884991eaac39417e314faa6685061eab18909d

 

2 .git fsck --full

 

 

3.git reflog

相關文章
相關標籤/搜索