git直接提交删除的文件方法(附脚本)
2016-07-15 00:00
218 查看
摘要: 在git项目中使用外部命令删除文件后,不能直接通过git add 加入到缓冲区,也不能直接进行 git commit , 必须进入交互模式提交 git commit -a , 但是这样为自动化带来不少麻烦。想办法解决这个问题,如下:
在git项目中使用外部命令删除文件后,不能直接通过
原创内容,转载请标明出处: http://my.oschina.net/foreverich/blog/712444 [[[@foreverich](http://my.oschina.net/foreverich)](http://my.oschina.net/foreverich)](http://my.oschina.net/foreverich)
enjoy it.
更新(20161002): 上面的想法挺傻的,其实git解决了这个问题,只需要在git add 的时候加上
以上代码可更新为:
在git项目中使用外部命令删除文件后,不能直接通过
git add加入到暂存区,也不能直接进行
git commit, 必须进入交互模式提交
git commit -a, 但是这样为自动化带来不少麻烦。想办法解决这个问题,如下:
#!/bin/bash # 环境 CentOS 7.2 # 统一语言环境,方便后面的匹配 export LANG=en_US.UTF-8 # 标记个时间吧^_^ DateTime=$(date +"%F %T") Timestamp=$(date +"%s") # 到对应项目的根目录 Src=$1 if [ -d $Src ] ; then cd $Src else echo "there is no such dir: $Src " exit 1 fi # 先将所有其他的修改提交到暂存区 git add . # 将所有删除的文件提交到暂存区 git status |sed -n '/Changes not staged for commit/,$p' |grep 'deleted:' > /tmp/git-rm-$Timestamp.log Num=$(wc -l /tmp/git-rm-$Timestamp.log |awk '{print $1}') if [ $Num -ge 1 ]; then cat /tmp/git-rm-$Timestamp.log |awk '{ $1=""; $2=""; print $0}' |sed -e 's/^[ \t]*//g' -e 's/[ \t]*$//g' |xargs -i echo '"{}"' |xargs git rm fi # 提交所有修改(包括删除的文件) git commit -m "$DateTime 提交了所有修改的文件"
原创内容,转载请标明出处: http://my.oschina.net/foreverich/blog/712444 [[[@foreverich](http://my.oschina.net/foreverich)](http://my.oschina.net/foreverich)](http://my.oschina.net/foreverich)
enjoy it.
更新(20161002): 上面的想法挺傻的,其实git解决了这个问题,只需要在git add 的时候加上
--all选项即可。
以上代码可更新为:
#!/bin/bash # 统一语言环境,方便后面的匹配 export LANG=en_US.UTF-8 # 标记个时间吧^_^ DateTime=$(date +"%F %T") Timestamp=$(date +"%s") # 到对应项目的根目录 Src=$1 if [ -d $Src ] ; then cd $Src else echo "there is no such dir: $Src " exit 1 fi # 先将所有其他的修改提交到暂存区 git add --all . # 提交所有修改(包括删除的文件) git commit -m "$DateTime 提交了所有修改的文件"
相关文章推荐
- RPC failed; result=22, HTTP code = 411
- git更新已經刪除的文件
- 提取Git每次提交后Commit的文件
- GIT迁移服务器
- 分布式版本管理git入门指南使用资料汇总及文章推荐
- git终极指南:在实际开发中的应用
- 6 个托管 git 仓库的地方
- Git远程操作详解
- 25个 Git 进阶技巧(翻译)
- 详解版本控制利器Git,SVN的异同以及适用范围
- Ruby实现的删除已经合并的git分支脚本分享
- 在 Shell 提示符中显示 Git 分支名称的方法
- Git使用基础篇(一些常用命令和原理)
- git 使用及常用命令
- git eclipse 插件的安装
- git fork同步是什么意思?
- Git使用小坑 Out of memory错误的解决方法
- Python的高级Git库 Gittle
- 使用GIT进行源码管理――GUI客户端小结
- 使用git代替FTP部署代码到服务器的例子