git update-index --assume-unchanged <filename>
本地开发总存在一些不想提交到远程的文件git rm <-r | -n> --cached <filename>
移除上一次的 commit 中提交了不该提交的信息git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch <filename>' --prune-empty --tag-name-filter cat -- --all
历史记录中有不想要提交的内容,通过该命令能全部清除git log --pretty=oneline
只会留下 commit id (版本号 (用 SHA1 字串表示))和 提交版本时的描述信息git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
将远程的所有分支映射到本地git branch --set-upstream-to=origin/<branch-name>
|git push --set-upstream origin <branch-name>
|git checkout --track origin/<branch-name>
|git branch -vv
git 分支关联所需命令
设置指定的本地文件不提交
场景:本地开发总存在一些不想提交到远程的文件
命令:git update-index --assume-unchanged <filename>
逆向命令:git update-index --no-assume-unchanged <filename>
移除上次提交的某些文件
场景:想要移除上一次的 commit 中提交了不该提交的信息
命令:git rm <-r | -n> --cached <filename>
- 如果目标是文件夹,添加
-r
- 如果仅仅列出即将被操作的文件,添加
-n
清除历史记录中的某些文件
场景:历史记录中有不想要提交的内容,通过该命令能全部清除
命令:git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch <filename>' --prune-empty --tag-name-filter cat -- --all
注意:
- 这里的文件或文件夹,都不能以 ‘/’ 开头,否则文件或文件夹会被认为是从 git 的安装目录开始。
- 如果要删除的目标是文件夹,需要使用
git rm --cached -r
表示递归删除子文件夹和文件夹下的文件
后续步骤:
- 推送我们的修改
git push origin master --force --all
- 推送 tags
git push origin master --force --tags
- 清理和回收控件
rm --rf .git/refs/original
git reflog expire --expire=now --all
git gc --prune=now
git gc --aggressive --prune=now
简化 git log 的信息
场景:git log 中包含太多信息无法快速浏览
命令:git log --pretty=oneline
说明:
- –pretty=oneline [只会留下 commit id (版本号 (用 SHA1 字串表示))和 提交版本时的描述信息]
根据远程分支建立本地分支并关联
场景:需要将远程的所有分支映射到本地
命令:git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
说明:
-
此命令仅会在本地创建分支,并关联对应的远程分支,如果需要拉取对应分支的内容还需要
1
2git fetch --all
git pull --all -
命令中的
origin
是指remote
的名称 如果需要拉取其它remote
的分支时需要对应修改
设置本地分支关联指定的远程分支
场景:本地已有的分支和远程分支名不同,需要手动关联
命令:git branch --set-upstream-to=origin/<branch-name>
| git push --set-upstream origin <branch-name>
说明:
- 如果希望创建并关联与远程分支同名的本地分支,可以使用
git checkout --track origin/<branch-name>
- 查看本地分支的关联远程分支的信息,可以使用
git branch -vv