美文网首页
将git修改的文件按照原来的目录层次全部复制出来

将git修改的文件按照原来的目录层次全部复制出来

作者: Aipeli | 来源:发表于2021-09-18 10:16 被阅读0次

在使用git管理源代码时,经常需要将一台机器上一堆已修改但未提交的文件,按照原来的目录层次,全部复制到另一台机器上去。最笨的办法当然是一个个查找已修改的文件,并将其复制出来。不过已修改文件数量较多时,这种方法不但繁琐,而且容易出错。本文介绍一种使用git和Shell脚本,将修改的文件按照原来的目录层次全部复制出来的方法。
一、尚未使用git提交修改的文件
如果修改的文件尚未使用git提交,可使用如下命令复制并打包:

# 在源代码根目录,使用git status命令获取已修改文件的列表
git status | grep modified | awk '{print $2}' > list.txt
# 在当前目录下,创建temp目录
mkdir temp
# 将已修改文件列表逐一复制到当前目录下的temp目录
xargs -a ./list.txt cp --parents -t ./temp

# 将temp目录下的所有文件打包为modules.tar.gz
cd temp
tar -czf modules.tar.gz *

二、提取git某条提交记录中更改的文件
如果已使用git提交修改,可使用下述命令将某条提交记录中所有更改的文件按原来的目录层次全部复制出来:

# 在源代码根目录,获取提交记录f3794bd30cb1d3f8e64f1177d3149f28cbc828e6中的更改文件名
# 你需要将提交记录f3794bd30cb1d3f8e64f1177d3149f28cbc828e6替换为自己的记录名
# git log f3794bd30cb1d3f8e64f1177d3149f28cbc828e6 -1 --name-only
# 可以替换为
# git show f3794bd30cb1d3f8e64f1177d3149f28cbc828e6 --name-only
git log f3794bd30cb1d3f8e64f1177d3149f28cbc828e6 -1 --name-only | grep '/' | awk '{print $1}' > list.txt
# 在当前目录下,创建temp目录
mkdir temp
# 将已修改文件列表逐一复制到当前目录下的temp目录
xargs -a ./list.txt cp --parents -t ./temp

# 将temp目录下的所有文件打包为modules.tar.gz
cd temp
tar -czf modules.tar.gz *

转自:https://blog.csdn.net/davidhopper/article/details/90410419

相关文章

  • Git基本命令

    一、Git的文件状态  已修改  在工作目录修改Git文件 已暂存  对修改的文件执行Git暂存操作,将文件纳入暂...

  • CnetOS7配置VNC远程控制

    安装VNC 配置VNC 复制配置文件 修改配置将复制的配置文件 为远程连接后映射为哪个系统用户,将两个地方全部修改...

  • 2018-11-30 centos linux cp拷贝命令

    linux复制指定目录下的全部文件到另一个目录中 复制指定目录下的全部文件到另一个目录中 文件及目录的复制是经常要...

  • git克隆和修改及其提交

    github clone 会将整个目录克隆到本地 修改及其提交进入目录中修改东西然后用git add 文件将修改过...

  • Git start!

    将当前目录初始化为一个git仓库git init 在当前目录下修改一个文件,并使用add命令记录修改[1]//添加...

  • 2022-10-20 mysql数据库的恢复还原方法

    对于mysql数据库的恢复还原:将原来网站的MYSQL目录下的data文件夹全部复制走(这里都是数据后面要用)。 ...

  • git 常用命令

    忽略本地指定文件、目录 在git下载到本地的目录中修改.git/info/exclude文件 例如git stat...

  • Linux基本命令12-26

    cp复制 将指定的文件或者目录复制到另一个文件或者目录中 语法: cp 复制:将需要的复制的文件从一个文件夹目录复...

  • git 的操作命令

    提交本地数据到远程 查看本地 git 的状态$ git status将本地的修改新建文件全部添加到暂存区$ git...

  • Git 命令

    将目录转化为Git仓库 添加文件到Git仓库 查看状态 版本回退 撤销修改 远程仓库 分支 多人协作

网友评论

      本文标题:将git修改的文件按照原来的目录层次全部复制出来

      本文链接:https://www.haomeiwen.com/subject/msvugltx.html