同一个git库, 是否可以多个用户操作?

线上项目git库会需要多个用户操作一个库, 部署人员、开发者 分别有自己的账号 部署人员主要是切换tag, 开发者可能需要在线上做调试会需要切换branch和tag还有pull等操作. 但会报错误.

用户有两个-user1 user2

先使用user1 git clone 这个时候用这个用户git fetch pull chekcout 操作都是正常的.

然后切换到用户 su user2 做下面操作就会报错.


$ git checkout v1.0.0

fatal: Unable to create ‘/home/test/sample/.git/index.lock’: ????


$ git pull

error: 无法打开 .git/FETCH_HEAD:????

私有git-http克隆方式

SP(server-path) 服务器路径: /home/www
G(git) git文件夹: git1.git

服务器中用Nginx配置好目录指向SP中.


初始git库在SP中, sudo git init --bare git1.git

在G文件夹中,

mv hooks/post-update.sample hooks/post-update
chmod a+x hooks/post-update
git update-server-info

克隆: git clone http://(ip或域名)/git1.git

待解决

目前这种方式只是支持只读(克隆), 但是不支持push(提交).

相关资料

搭建Composer私有仓库
服务器上的 Git

github-tag包下载很慢处理方法

eg: https://github.com/mysql/mysql-server/tags 下载MySQL的源码包

方法一: 通过搜索最近的DNS服务器

下载会转到 github-cloud.s3.amazonaws.com 这服务器下载, 站长之家-DNS查询 离我们最近的服务器, 然后把IP粘贴到本机的HOSTS文件中.

52.216.20.16 github-cloud.s3.amazonaws.com

方法二: 把github导出然到国内的git平台中下载.

eg: 利用码云的git平台, 导入后再tag中下载包

相关资料

mysql-社区版下载

git_pull 文件冲突解决

使用git pull代码时,经常会碰到有冲突的情况,提示如下信息:

error: Your local changes to 'c/environ.c' would be overwritten by merge.  Aborting.
Please, commit your changes or stash them before you can merge.

这个意思是说更新下来的内容和本地修改的内容有冲突,先提交你的改变或者先将本地修改暂时存储起来。

git stash # git stash list 
git pull
git stash pop stash@{0}

使用git pull文件时和本地文件冲突怎么办?