git使用笔记

git生成标准补丁

git diff > git apply --reject --whitespace=fix 0001.diff

git打补丁:错误:new blank line at EOF.

   git apply --reject --whitespace=fix 0001.patch

将git的子目录做成子模块

参考博客

git clone coloshine-server coloshine	# 克隆仓库
cd coloshine
git branch -r br1 origin/br1				# 保留需要的分支
git branch -r br2 origin/br2
git remote rm origin						# 删除远端地址
git filter-branch --tag-name-filter cat --prune-empty --subdirectory-filter coloshine -- --all       # 转化为子模块
    		--tag-name-filter cat 该参数控制我们要如何保存旧的tag,参数值为bash命令,cat表示原样输出。所以,如果你不关心tag,就不需要这个参数了;
    		--prune-empty 删除空的(对子目录没有影响的)的提交
    		--subdirectory-filter coloshine 指定子模块路径
    		-- --all 该参数必须跟在--后面,表示对所有分支做操作,即对上一步创建的所有本地分支做操作。所以,如果你只想保存当前分支,就不需要这个参数了
      
# 以下的命令是进行仓库清理,减少子模块体积
git reset --hard
git for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git update-ref -d
git reflog expire --expire=now --all
git gc --aggressive --prune=now

#之后将子模块提交至远端仓库,删除原仓库中的对应目录,按照正常步骤添加子模块
git rm coloshine
git git submodule add origin/coloshine coloshine

git工作区的常用命令

git worktree add [-f] [--detach] [--checkout] [--lock] [-b <new-branch>] <path> [<commit-ish>]
git worktree list [--porcelain]
git worktree lock [--reason <string>] <worktree>
git worktree move <worktree> <new-path>
git worktree prune [-n] [-v] [--expire <expire>]
git worktree remove [--force] <worktree>
git worktree unlock <worktree>

参考博客

修改已提交common内容

适用于本地已经提交没有push到远端仓库

执行git commit --amendgit会打开$EDITOR编辑器,它会加载这次提交的日志,这样我们就可以在上面编辑,编辑后保存即完成此次的修改。

git stash的常用命令

git stash

能够将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录。

git stash pop

将当前stash中的内容弹出,并应用到当前分支对应的工作目录上。
注:该命令将堆栈中最近保存的内容删除(栈是先进后出)

git stash list

查看当前stash中的内容

git stash apply

将堆栈中的内容应用到当前目录,不同于git stash pop,该命令不会将内容从堆栈中删除,也就说该命令能够将堆栈的内容多次应用到工作目录中,适应于多个分支的情况。

删除历史提交中的文件记录

git filter-branch --force --index-filter "git rm -rf --cached --ignore-unmatch filename" --prune-empty --tag-name-filter cat -- --all

文件不记录到git仓库中

.gitignore文件中不上传的文件。注意。该文件只能忽略以前没有提交过的文件,提交的文件需要删除以前的历史记录后方可生效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值