赞
踩
目录 start
目录 end
目录创建于2018-01-22 | 更多: CSDN | oschina | 码云
git ls-files
列出文件列表 git ls-files | xargs wc -l
计算文件中程序代码行数 通过工具:xargs
wc
(中文命名的文件编码问题无法计算行数)git ls-files | xargs cat | wc -l
计算行数总和 |
表示前一个命令的输出作为下一个命令的输入 【流】清理仓库
- 因为删除的文件是会留在仓库,以便以后恢复,这样的话仓库就会越来越大了
- git gc
清理,不知道有没有用
- 强制删除,并且从git索引中也去掉,相当于彻底删除
- 参考博客1 彻底删除
- 参考博客2 彻底删除
- 参考博客3 删除大文件
- 参考博客4 减小磁盘占用
- git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch 文件的路径' --prune-empty --tag-name-filter cat -- --all
- git push origin --force --all
- git push origin --force --tags
- 使用git rebase
来更新分支,而不是 git merge
不然文件又回来了
猜测他的文件都在 .git/objects/pack/
里留有备份
使用git rm
命令进行删除文件应该是会彻底删除文件的
git config user.email ***
和 git config user.name ***
这两个是必须的, git config --global user.name
email同理git config http.postBuffer 524288000
设置缓存区大小为 500mgit config core.fileMode false
忽略文件的mode变化,一般发生在文件的复制粘贴之后(跨系统?)git commit -am "init"
: a git库已有文件的修改进行添加, m 注释 git add *
如果有新建立文件就要add 再之后commit就不要a参数了 git commit -m ""
git commit -am ""
git commit
会自动进入VI编辑器 git remote add name URL地址
添加远程关联仓库 不唯一,可以关联多个一般默认有个origin git remote
可以看到添加的远程URL的名字git remote set-url name URL地址
修改关联仓库 预定默认的叫origingit remote rm URL
删除和远程文档库的关系git remote rename origin myth
更改远程文档库的名称git ls-remote
输出所有关联的remote库 还会输出库的分支git remote -v
输出push和pull的URLgit push 远程URL的名称 --delete 分支名称
删除远程库某分支git remote show origin
查看远程分支的状态git remote add 名称 原作者URL
git fetch 名称
常用参数
-h
查看所有参数和说明-q
控制台不输出任何信息-f
强制--all
推送所有引用-u
upstream 设置 git pull/status 的上游 git push origin master
和git push -u origin master
区别在于 前者是使用该远程和分支进行推送-d
删除引用--tags
推送标签(不能使用 –all or –mirror)出现 RPC failed; result=22, HTTP code = 411
的错误
例如改成500m
git config http.postBuffer 524288000
提交本地所有分支 git push --all
pull时同理
git push -u origin master
| git push --set-uptream master
| git push -all
git merge master
换成 git rebase master
git rebase --abort
放弃rebasegit rebase --continue
修改好冲突后继续git log --author='A'
输出所有A开头的作者日志git log 文件名 文件名
输出更改指定文件的所有commit 要文件在当前路径才可git log --after='2016-03-23 9:20' --before='2017-05-10 12:00'
输出指定日期的日志git shortlog
按字母顺序输出每个人的日志 加上--numbered
参数就是按提交数排序git tag
查看所有标签git tag -a v1.0.0 -m "初始版本"
git checkout tagname
和切换分支一样的切换标签,但是标签只是一个镜像,不能修改git checkout -b branchname tagname
git show tagname
展示标签注释信息git tag -d tagname
git tag -a v1.2.4 commit-id
git push origin tagname
(默认不会自动提交标签)提交所有的tag git push --tags
删除远程的tag git push origin --delete tag <tagname>
git clone branchname URL
克隆指定分支git clone URL 目录
克隆下来后更名为指定目录git checkout 文件名 文件名
git会在索引中找文件,有就取出,没有就从最新的commit回找,取出第一个找到的版本, git checkout .
取出文档库中所有文件的最新版本git checkout commit 节点标识符或者标签 文件名 文件名。。。
git reset HEAD
来清除这种状态git pull --all
下拉远程所有的分支到本地git fetch origin dev-test
下拉远程的分支新建到本地(本地没有)feature-*
release
fixbug
git checkout -b feature-x develop
从develop的分支生成一个功能分支,并切换过去git checkout develop
git merge --no-ff feature-x
git branch -d feature-x
git checkout -b release-1.2 develop
新建一个预发布分支 git checkout master
确认没有问题后 git merge --no-ff release-1.2
合并到master分支git tag -a 1.2
打标签,这就是github上软件的版本控制git checkout develop
git merge --no-ff release-1.2
git branch -d release-1.2
git checkout -b fixbug-0.1 master
新建修复bug的分支 git checkout master ``git merge --no-ff fixbug-0.1 ``git tag -a 0.1.1
修补结束后合并到master分支git checkout develop
git merge --no-ff fixbug-0.1
再合并到develop分支git branch -d fixbug-0.1
git fetch -p
配置mergetool工具:
git config --global merge.tool kdiff3
git config --global mergetool.kdiff3.cmd "'D:/kdiff3.exe' \"\$BASE\" \"\$LOCAL\" \"\$REMOTE\" -o \"\$MERGED\""
git config --global mergetool.prompt false
git config --global mergetool.kdiff3.trustExitCode true
git config --global mergetool.keepBackup false
git merge develop
默认会直接将master分支指向Develop分支。(一条拐弯的线)git merge--no-ff develop
将当前master分支与分支Develop合并,在Master分支上生成一个新节点(有一个环的线) git mergetool
使用工具进行分析冲突文件方便修改git grep docker
-n
搜索并显示行号 --name-only
只显示文件名,不显示内容-c
查看每个文件里有多少行匹配内容(line matches):git grep xmmap v1.5.0
git grep --all-match -e '#define' -e SORT_DIRENT
匹配两个字符串综合各个VCS的管理方式
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。