Git經常使用配置和常遇問題

Git經常使用配置

git初始化git

git初始化有兩種模式,一種是git init 這種模式會記錄當前庫提交的版本以及顯示項目文件,一種是git init --bare,稱爲裸倉庫,當前倉庫是沒法提交的,由於不包含項目文件,只包含版本庫,所以這種模式多用於遠程倉庫的核心倉庫(很像SVN中的中央倉庫)服務器

若是遠程庫是一個git init庫,則在第一次push到遠程庫時會提示'receive.denyCurrentBranch' Configuration variable to 'refuse',即拒絕合併到當前分支,需進行以下配置:git config receive.denyCurrentBranch=ignore便可。push成功後,還須要在遠程庫執行git reset --hard,回滾到最新的提交歷史才能夠顯示最新的提交spa

因此強烈建議先使用git init --bare設置箇中央遠程庫,再從中央遠程庫拉取ci

還有就是push失敗頗有多是權限問題,git用戶沒有建立目錄的權限,因此須要在服務器上受權,要麼修改擁有者或組,要麼修改權限rem

 

Git常遇問題

問題:git push或git pull的時出現以下錯誤:it

$ git push
fatal: You are not currently on a branch.
To push the history leading to the current (detached HEAD)
state now, use
git push origin HEAD:<name-of-remote-branch>io

說明:根據上面的提示,直接git push origin master實際並不能解決問題ast

配置

$ git pull
You are not currently on a branch, so I cannot use any
'branch.<branchname>.merge' in your configuration file.
Please specify which remote branch you want to use on the command
line and try again (e.g. 'git pull <repository> <refspec>').
See git-pull(1) for details.file

解決方案:

第一步:git checkout -b temp   切換到一個臨時的分支

第二步:git checkout master    再切換回主分支

就能夠恢復到master repository的狀態,而後就能夠push和pull了

相關文章
相關標籤/搜索