远程更新git项目代码

作者: 时间: 2021-06-21 评论: 暂无评论

1.添加 hook.php 脚本,记得 检查PHP的exec函数 是否被禁用

$web_root='/www/wwwroot/xxx.com'; //服务器 项目根目录地址
$shell = "cd {$web_root}/ && pwd && git pull 2>&1";
exec($shell,$out); 
print_r($out);

2.在代码管理库(gitea ,github)添加钩子,指向上面的php地址 http://xxx.com/hook.php

3.在服务添加 www 权限

cd ~
vi .git-credentials
https://用户名:密码@gitee.com
git config --global credential.helper store
#执行成功后出现~/.gitconfig文件
cp ~/.gitconfig /home/www/
cp ~/.git-credentials /home/www/
cd /home/www
chown www.www .gitconfig
chown www.www .git-credentials

4.到你的项目下执行

chmod -R 777 .git

6.检查项目权限,如果不对

chown -R www.www  项目地址

5.用浏览器访问 http://xxx.com/hook.php
成功结果返回
Array ( [0] => /www/wwwroot/dcc.com [1] => Already up-to-date. )

GitLab备份与恢复

作者: 时间: 2018-05-02 评论: 暂无评论

[配置备份地址]
修改/etc/gitlab/gitlab.rb

gitlab_rails['backup_path'] = '/home/backup'
gitlab-ctl reconfigure

[创建备份]

gitlab-rake gitlab:backup:create

[每天执行]
crontab -e 添加

0 0 * * * gitlab-rake gitlab:backup:create

[还原]

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-rake gitlab:backup:restore BACKUP=1500809139

SVN迁移到GIT

作者: 时间: 2018-01-18 评论: 暂无评论

安装git-svn

yum install -y git-svn

window打开gitbash
[设置对应的用户信息]
新建 /data/user.txt写入

svn账户=git用户名<邮箱>
user1=xw<xw@by.com>
user2=zq<zq@by.com>

必须在gitlab添加ssh个人密钥,没有添加会在下面的推送命令出错

直接输入

ssh-keygen -t rsa -C "your_email@example.com"

三次enter后,根据对应的地址,找到.ssh/id_rsa.pub文件,添加到gitlab个人密钥

git svn clone svn地址 --authors-file=/data/user.txt
git remote add origin https://username:password@github.com/project/test.git
git push -u origin master

[注意] clone如果项目是空的,那么clone的时候会有提示,哪个用户没有定义

[删除远程地址]

git remote rm origin

git rebase 冲突 失败

作者: 时间: 2016-05-03 评论: 暂无评论

我们通过phpstorm 来看分支的变化(PS:phpstorm 太强大了)
1.准备主分支
a.在目录下,创建一个 test.txt文件用于冲突测试.
b 提交文件.

git add test.txt .gitignore
git commit -m '开始'
...
git commit -m '首页'
...

2.准备测试分支

git branch dev

通过修改 test.txt,模拟写一个注册功能

git commit -m '注册'
...

3.开始rebase

git checkout dev
git rebase master  //可以通过 -i参数修改注册功能的历史记录
提示冲突文件test.txt, 修改文件,把<<<<<<<  ======= >>>>>>>都删掉.
**用git status 查看是工作区否干净**
git add test.txt
git rebase --continue
git push -f  

ps:以上操作可以通过phpstorm 实现,我冲突失败的原因在于phpstrom生成的.idea文件夹没有忽略掉, 工作区不干净

附带phpstorm查看状态的方法,phpstorm的下方,点击 version control,点击log

git恢复文件

作者: 时间: 2015-12-28 评论: 暂无评论
git checkout index.php
git reset HEAD af58