标签:xxxx 网站 保存 指定 fonts 公司 解决办法 linu 创建
发现问题
最早是在公司的wiki上发现了这个命令,google后发现值得记录下来
网上找了很多资料,但说的很乱,干脆在自己的服务器上执行对比了一下:
git init demo1 # 表示创建一个叫demo1的私人仓库
# git init目录下只有一个.git隐藏文件夹,里面包含各种信息
git init --bare deme2 # 表示创建一个裸库,主要应用场景是作为公共仓库
# 裸库的目录下没有隐藏.git目录,全都是显示的,没有.git这个目录,进入文件直接是文件内容
# 一般来讲,作为远端备份或公共版本库时,应该使用git init --bare。
Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库
详细说一下使用 --bare 参数的含义,使用 --bare 参数初始化的仓库,我们一般称之为裸仓库, 因为这样创建的仓库并不包含 工作区 , 也就是说,我们并不能在这个目录下执行我们一般使用的 Git 命令。
用"git init"初始化的版本库用户也可以在该目录下执行所有git方面的操作。但别的用户在将更新push上来的时候容易出现冲突。
比如有用户在该目录(就称为远端仓库)下执行git操作,且有两个分支(master 和 b1),当前在master分支下。另一个用户想把自己在本地仓库(就称为本地仓库)的master分支的更新提交到远端仓库的master分支
他就想当然的敲了命令git push origin master:master
自然就会发生冲突
因为远端仓库的用户正在master的分支上操作,而你又要把更新提交到这个master分支上,当然就出错了。
但如果是往远端仓库中空闲的分支上提交还是可以的,比如git push origin master:b1
还是可以成功的
解决办法就是使用”git init –bare”方法创建一个所谓的裸仓库,之所以叫裸仓库是因为这个仓库只保存git历史提交的版本信息,而不允许用户在上面进行各种git操作,如果你硬要操作的话,只会得到下面的错误(”This operation must be run in a work tree”)
这个就是最好把远端仓库初始化成bare仓库的原因。
添加用户
useradd -s /usr/bin/git-shell chen # 指定git-shell
usermod -g git chen # 修改用户组
passwd chen # 修改密码
添加项目
cd /git # 进入git的根目录
git init --bare ngx_luacode.git # 创建git公共仓库(目录)
chown git.git ngx_luacode.git/ -R # 修改属主属组
chmod 775 ngx_luacode.git/ -R # 修改权限
git 项目添加
cd ngx_luacode.git # 进入目录
修改config
[core]
repositoryformatversion = 0
filemode = false
bare = true
sharedrepository = 1
[receive]
denyNonFastforwards = true
filemode = false
git reset
命令,版本回退后没有恢复,造成本地仓库的提交版本号落后于远端仓库的提交版本号。可以执行 git push -f命令去强制提交,为了防止这种操作,在配置文件中设置denyNonFastforwards = true
拉取
git clone 用户名@git.master.com:/git/xxxx.git
vim .git/config
filemode = false
标签:xxxx 网站 保存 指定 fonts 公司 解决办法 linu 创建
原文地址:https://www.cnblogs.com/irockcode/p/8761954.html