Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >git常用操作及自动拉取资料

git常用操作及自动拉取资料

原创
作者头像
力力RiversFlow
修改于 2020-12-09 01:52:32
修改于 2020-12-09 01:52:32
2.8K0
举报
文章被收录于专栏:游戏研发游戏研发

现在越来越多项目使用git, 本文记录git常用操作及在linux里自动拉取相应的资料, 再通过samba系统提供给其它人员使用

一. git拉取分支,以拉取redis分支2.2为例子

  1. 创建新文件并初始化git: git init
  2. 与origin master建立连接: git remote add origin https://github.com/redis/redis.git
  3. 把redis 分支2.2拉到本地 git fetch origin 2.2
  4. 在本地创建分支2.2 git checkout -b 2.2
  5. 把分支2.2上的内容都拉取到本地,如需拉取指定文件,请先参考拉取指定文件部分内容进行设置 git pull origin 2.2
  6. lfs文件拉取: git lfs pull 注:lfs没有安装,需安装:git lfs install

二. 拉取指定文件

1.git pull 指定文件或文件夹:默认git pull会拉取整个库,如果需要拉取指定文件或文件夹,

1.1. 设置core.sparsecheckout 为true 即

git config core.sparsecheckout true

1.2. 在.git/info/sparse-checkout文件中(如果没有则创建)添加需拉取的文件或文件夹

echo src>>.git/info/sparse-checkout

2.git 拉取指定lfs文件:如只想拉取images 文件夹,而不想获取 videos 文件夹

2.1. 拉取指定目录下的LFS对象

git config lfs.fetchinclude 'images/**'

2.2. 排除指定目录下的LFS对象

git config lfs.fetchexclude 'videos/**'

三. 提交git修改

1.将xx文件添加到暂存区:git add xx

注: 提交所有改动: git add -A .

  1. 提交: git commit -m "注释"
  2. 提交到2.2分支: git push origin 2.2

四. git常用命令

  1. 查看当前状态: git status
  2. 查看提交日志: git log
  3. 查看具体提交日志: git lop -p
  4. 对比不同: git diff
  5. 查看远程分支: git branch -a
  6. 查看远程仓库地址: git remote -v
  7. 检查下本地分支是否创建成功: git branch

五. 自动拉取

1.拉取脚本

1.1. 配置文件:td_update_config.txt

#n表示等待n秒后进行更新,n 必须大于等于0,小于0时不进行更新,时间误差为一分钟

wait_second=n

1.2. 如果git文件名为汉字,为了使用脚本处理,可以添加软链接

ln -s /data/xxx /data/Ln/TrunkDataTable

1.3. 更新脚本:td_update.sh

代码语言:txt
AI代码解释
复制
#!/bin/sh

#提取这次更新的相应日志到td_git.log 
function getGitLog()
{
    cat /tmp/git_log.tmp.log | while read line
    do
        line_num=${#line}
        if [[ $line_num > 0 ]];then
            para_0=`echo $line | cut -d ':' -f 1`
            if [[ $para_0 == "Date" ]];then
                para_1=`echo $line | cut -d ':' -f 2`
                para_1_=`echo $para_1|awk '{sub("^ *", "");print}'`
                para_2=`echo $line | cut -d ':' -f 3`
                para_3=`echo $line | cut -d ':' -f 4`
                para="\""$para_1_":"$para_2":"$para_3"\""
                #仅提取这个时间后的提交记录
                echo "git log --after=$para>td_git.log">/tmp/get_git_log.sh
                chmod +x /tmp/get_git_log.sh
                /tmp/get_git_log.sh
                break
            fi
        fi
    done
}

#会在crontab里调用,路径使用绝对路径. 自己用时需换成自己的路径
cd /data/Ln/TrunkDataTable

#获取td_update_config.txt配置的等待更新时间,单位为秒
for line in `cat ./td_update_config.txt`
do
    line_num=${#line}
    if [[ $line_num > 0 ]];then
        para_0=`echo $line | cut -d '=' -f 1`
        para_1=`echo $line | cut -d '=' -f 2`
        if [[ $para_0 == "wait_second" ]];then
            wait_second=$para_1
        fi
    fi
done

#只有等待时间大于0时才执行更新操作
if [[ $wait_second -gt 0 ]];then
    #等待相应的时间,单位秒
    sleep $wait_second

    #提取当前版本相应的日志
    git log -p -1>/tmp/git_log.tmp.log
    
    #进行更新
    git pull
    git lfs pull

    #提取相应日志到git日志
    getGitLog

    #记录本次更新到历次更新日志
    curr_time=`date '+%Y-%m-%d %H:%M:%S'`
    cd /data/Ln/TrunkDataTable
    sed -i 's|'"${wait_second}"'|-1|' ./td_update_config.txt 
    echo $curr_time" update wait_second="$wait_second>>/data/Ln/TrunkDataTable/td_update.log
fi 

1.4. 历次更新日志:td_update.log

1.5. 本次git更新日志:td_git.log

2.定时检查执行:用crontab里进行设置

2.1.编辑crontab: crontab -e

2.2.添加每分钟自动执行脚本:

*/1 * * * * /data/Ln/TrunkDataTable/td_update.sh &

六. 主要参考:

  1. https://blog.csdn.net/carfge/article/details/79691360
  2. https://blog.csdn.net/lijing742180/article/details/84637029
  3. https://zzz.buzz/zh/2016/04/19/the-guide-to-git-lfs/

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
斯坦福NLP课程 | 第1讲 - NLP介绍与词向量初步
教程地址:http://www.showmeai.tech/tutorials/36
ShowMeAI
2022/04/29
1.2K0
斯坦福NLP课程 | 第1讲 - NLP介绍与词向量初步
斯坦福NLP课程 | 第13讲 - 基于上下文的表征与NLP预训练模型(ELMo, transformer)
教程地址:http://www.showmeai.tech/tutorials/36
ShowMeAI
2022/05/16
9610
斯坦福NLP课程 | 第13讲 - 基于上下文的表征与NLP预训练模型(ELMo, transformer)
斯坦福NLP课程 | 第17讲 - 多任务学习(以问答系统为例)
ShowMeAI为斯坦福CS224n《自然语言处理与深度学习(Natural Language Processing with Deep Learning)》课程的全部课件,做了中文翻译和注释,并制作成了GIF动图!视频和课件等资料的获取方式见文末。
ShowMeAI
2022/05/20
1.4K0
斯坦福NLP课程 | 第17讲 - 多任务学习(以问答系统为例)
斯坦福NLP课程 | 第14讲 - Transformers自注意力与生成模型
ShowMeAI为斯坦福CS224n《自然语言处理与深度学习(Natural Language Processing with Deep Learning)》课程的全部课件,做了中文翻译和注释,并制作成了GIF动图!视频和课件等资料的获取方式见文末。
ShowMeAI
2022/05/16
7340
斯坦福NLP课程 | 第14讲 - Transformers自注意力与生成模型
斯坦福NLP课程 | 第10讲 - NLP中的问答系统
教程地址:http://www.showmeai.tech/tutorials/36
ShowMeAI
2022/05/12
7630
斯坦福NLP课程 | 第10讲 - NLP中的问答系统
斯坦福NLP课程 | 第3讲 - 神经网络知识回顾
教程地址:http://www.showmeai.tech/tutorials/36
ShowMeAI
2022/05/04
7560
斯坦福NLP课程 | 第3讲 - 神经网络知识回顾
斯坦福NLP课程 | 第11讲 - NLP中的卷积神经网络
教程地址:http://www.showmeai.tech/tutorials/36
ShowMeAI
2022/05/16
9690
斯坦福NLP课程 | 第11讲 - NLP中的卷积神经网络
NLP教程(9) - 句法分析与树形递归神经网络
本系列为斯坦福CS224n《自然语言处理与深度学习(Natural Language Processing with Deep Learning)》的全套学习笔记,对应的课程视频可以在 这里 查看。
ShowMeAI
2022/05/20
1.4K0
NLP教程(9) - 句法分析与树形递归神经网络
斯坦福NLP课程 | 第2讲 - 词向量进阶
教程地址:http://www.showmeai.tech/tutorials/36
ShowMeAI
2022/05/01
6930
斯坦福NLP课程 | 第2讲 - 词向量进阶
斯坦福NLP课程 | 第18讲 - 句法分析与树形递归神经网络
ShowMeAI为斯坦福CS224n《自然语言处理与深度学习(Natural Language Processing with Deep Learning)》课程的全部课件,做了中文翻译和注释,并制作成了GIF动图!
ShowMeAI
2022/05/23
1.3K0
斯坦福NLP课程 | 第18讲 - 句法分析与树形递归神经网络
斯坦福NLP课程 | 第8讲 - 机器翻译、seq2seq与注意力机制
教程地址:http://www.showmeai.tech/tutorials/36
ShowMeAI
2022/05/10
8160
斯坦福NLP课程 | 第8讲 - 机器翻译、seq2seq与注意力机制
NLP教程(1)-词向量、SVD分解与Word2Vec
教程地址:http://www.showmeai.tech/tutorials/36
ShowMeAI
2022/04/29
1.2K0
NLP教程(1)-词向量、SVD分解与Word2Vec
斯坦福NLP课程 | 第6讲 - 循环神经网络与语言模型
ShowMeAI为斯坦福CS224n《自然语言处理与深度学习(Natural Language Processing with Deep Learning)》课程的全部课件,做了中文翻译和注释,并制作成了GIF动图!
ShowMeAI
2022/05/08
5750
斯坦福NLP课程 | 第6讲 - 循环神经网络与语言模型
斯坦福NLP课程 | 第4讲 - 神经网络反向传播与计算图
教程地址:http://www.showmeai.tech/tutorials/36
ShowMeAI
2022/05/04
1.1K0
斯坦福NLP课程 | 第4讲 - 神经网络反向传播与计算图
【Manning主讲】斯坦福CS224n深度学习与NLP课程全部视频、PPT
【新智元导读】斯坦福大学CS224n(全称:深度学习与自然语言处理)是自然语言处理领域很受欢迎的课程,由 Chris Manning 和 Richard Socher 主讲。本课程所有教学视频和课程材
新智元
2018/03/22
1.5K0
【Manning主讲】斯坦福CS224n深度学习与NLP课程全部视频、PPT
斯坦福NLP课程 | 第5讲 - 句法分析与依存解析
ShowMeAI为斯坦福CS224n《自然语言处理与深度学习(Natural Language Processing with Deep Learning)》课程的全部课件,做了中文翻译和注释,并制作成了GIF动图!
ShowMeAI
2022/05/05
1.6K0
斯坦福NLP课程 | 第5讲 - 句法分析与依存解析
斯坦福NLP课程 | 第20讲 - NLP与深度学习的未来
ShowMeAI为斯坦福CS224n《自然语言处理与深度学习(Natural Language Processing with Deep Learning)》课程的全部课件,做了中文翻译和注释,并制作成了GIF动图!视频和课件等资料的获取方式见文末。
ShowMeAI
2022/05/23
1.2K0
斯坦福NLP课程 | 第20讲 - NLP与深度学习的未来
斯坦福NLP课程 | 第12讲 - NLP子词模型
教程地址:http://www.showmeai.tech/tutorials/36
ShowMeAI
2022/05/16
8200
斯坦福NLP课程 | 第12讲 - NLP子词模型
NLP教程(8) - NLP中的卷积神经网络
教程地址:http://www.showmeai.tech/tutorials/36
ShowMeAI
2022/05/16
8160
NLP教程(8) - NLP中的卷积神经网络
斯坦福NLP课程 | 第15讲 - NLP文本生成任务
ShowMeAI为斯坦福CS224n《自然语言处理与深度学习(Natural Language Processing with Deep Learning)》课程的全部课件,做了中文翻译和注释,并制作成了GIF动图!视频和课件等资料的获取方式见文末。
ShowMeAI
2022/05/20
1.2K0
斯坦福NLP课程 | 第15讲 - NLP文本生成任务
推荐阅读
相关推荐
斯坦福NLP课程 | 第1讲 - NLP介绍与词向量初步
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档