sourcetree无法推送分支到远端,提示refusing to update checked out branch错误,git操作没有问题,怎么回事?
这是由于在建立本地git代码库的时候,使用了git init,如果使用了git init初始化,则远程仓库的目录下,也包含work tree,当本地仓库向远程仓库push时, 如果远程仓库正在push的分支上(如果当时不在push的分支,就没有问题), 那么push后的结果不会反应在work tree上, 也即在远程仓库的目录下对应的文件还是之前的内容。
现在的解决办法是:
找到本地git仓库文件夹,进入.git文件夹(需显示隐藏文件及文件夹),打开config文件编辑,添加如下代码:
denyCurrentBranch = ignore
这样再推送远端就OK了。
git init 和git --bare init 的具体区别?
一般个人使用,用git init,这时候你的工作区也在这里。你要是想建立一个固定的地址让大家一起用,就在服务器上用git --bare init。
其实你可以看到,init建立的.git目录内容和--bare建立的目录内容是差不多的。
时间: 2024-11-09 06:27:59