1. Git push 出錯以及server端沒有顯示push後的檔案的解決方案
Git: push 出錯的解決 master-> master (branch is currently checkedout)
在使用GitPush代碼到資料倉儲時,提示如下錯誤:
[remote rejected]master -> master (branch is currently checkedout)
remote: error: refusing to update checked out branch:refs/heads/master
remote: error: By default, updating the current branch in anon-bare repository
remote: error: is denied, because it will make the index and worktree inconsistent
remote: error: with what you pushed, and will require 'git reset--hard' to match
remote: error: the work tree to HEAD.
remote: error:
...
這是由於git預設拒絕了push操作,需要進行設定,修改.git/config添加如下代碼:
[receive]
denyCurrentBranch = ignore
或執行:git config receive.denyCurrentBranch ignore 達到相同作用。
在初始化遠程倉庫時最好使用 git--bare init 而不要使用:gitinit
如果使用了gitinit初始化,則遠程倉庫的目錄下,也包含worktree,當本地倉庫向遠程倉庫push時,
如果遠程倉庫正在push的分支上(如果當時不在push的分支,就沒有問題), 那麼push後的結果不會反應在worktree上, 也即在遠程倉庫的目錄下對應的檔案還是之前的內容,必須得使用git reset--hard才能看到push後的內容.
2. git pull出現如下錯誤:
You asked me to pull without telling me which branch you
want to merge with, and 'branch.master.merge' in
your configuration file does not tell me, either. Please
specify which branch you want to use on the command line and
try again (e.g. 'git pull <repository> <refspec>').
See git-pull(1) for details.
If you often merge with the same branch, you may want to
use something like the following in your configuration file:
[branch "master"]
remote = <nickname>
merge = <remote-ref>
[remote "<nickname>"]
url = <url>
fetch = <refspec>
See git-config(1) for details.
解決:
git config branch.master.remote origin
git config branch.master.merge refs/heads/master